Bästa svaret
Här är en funktion för att kontrollera om en sträng är tom:
def is\_empty(string):
return not string.strip()
Tomma sekvenser är falska och utvärderas till falska i ett booleskt sammanhang. Du kan använda detta för att kontrollera om en sträng är tom eller inte. Ta bort det vita utrymmet först så att om strängen bara innehåller tomt utrymme tas de bort och strängen blir noll och utvärderas till Falsk. Du kan ta bort remsan () om du inte vill att strängar med endast blanksteg ska anses vara tomma.
Exempel Användning:
print(is\_empty("")) # Empty string.
print(is\_empty(" ")) # String with only a space char.
print(is\_empty("Hello!")) # String with actual characters.
Output:
True
True
Falskt
Obs: Var tydlig och använd bool () i funktionen om du också behöver skicka andra saker än strängar till funktionen.
Svar
Jag ska anta att du pratar om listor (Python har matriser , men de skiljer sig mycket från listor).
Tre sätt:
1 Testa sanningen
Om du vet att artikeln är en lista gör du:
if not my\_list:
print(‘List is empty’)
Tomma behållare (listor, uppsättningar, tuplar, diktat) utvärderas som falska
2 Testa mot en em pty-lista
if my\_list == []:
print(‘List is empty’)
3 Testa längden
if len(my\_list) == 0:
print(‘List is empty’)
Av de tre alternativen anses det första vara det renaste
Ytterligare:
Om du testar din lista innan du försöker använda den är det bästa sättet att göra det att inte bry sig, och helt enkelt använda listan och fånga felen:
try:
customer = customer\_list[customer\_number]
except IndexError:
print(‘List is empty or {customer\_number} doesn’t exist’)
Att fånga felet på det här sättet anses vara bättre än att uttryckligen testa för tomhet. Det är en av Python-principerna som kallas EAFP: Enklare att be om förlåtelse än tillstånd.
Anteckningar om dumma matriser.
Numpy följer inte nödvändigtvis ovanstående mekanismer – till exempel genererar metod 1 ett fel och metod 3 ovan bör till exempel vara the\_array.size == 0
.