Beste antwoord
Hier is een functie om te controleren of een string is leeg:
def is\_empty(string):
return not string.strip()
Lege reeksen zijn vals en resulteren in False in een booleaanse context. U kunt dit gebruiken om te controleren of een string leeg is of niet. Verwijder eerst de witruimte, zodat als de tekenreeks alleen witruimte bevat, deze worden verwijderd en de tekenreeks null is, wat resulteert in False. U kunt de methode strip () verwijderen als u niet wilt dat strings met alleen spaties als leeg worden beschouwd.
Voorbeeldgebruik:
print(is\_empty("")) # Empty string.
print(is\_empty(" ")) # String with only a space char.
print(is\_empty("Hello!")) # String with actual characters.
Uitvoer:
Waar
Waar
False
Opmerking: Wees expliciet en gebruik bool () in de functie als je ook andere dingen dan strings aan de functie moet doorgeven.
Antwoord
Ik ga ervan uit dat je het over lijsten hebt (Python heeft wel arrays , maar ze verschillen heel erg van lijsten).
Drie manieren:
1 Test de waarheid
Als u weet dat het item een lijst is, doet u dat:
if not my\_list:
print(‘List is empty’)
Lege containers (lijsten, sets, tuples, dicts) evalueren als False
2 Test tegen een em pty-lijst
if my\_list == []:
print(‘List is empty’)
3 Test de lengte
if len(my\_list) == 0:
print(‘List is empty’)
Van de drie opties wordt de eerste als de schoonste beschouwd
Extra:
Als u uw lijst aan het testen bent voordat u deze probeert te gebruiken, kunt u dit het beste doen door u niet druk te maken en gewoon de lijst te gebruiken en de fouten op te vangen:
try:
customer = customer\_list[customer\_number]
except IndexError:
print(‘List is empty or {customer\_number} doesn’t exist’)
Het op deze manier opvangen van de fout wordt als beter beschouwd dan het expliciet testen op leegte. Het is een van de Python-principes genaamd EAFP: gemakkelijker om vergeving te vragen dan toestemming.
Opmerkingen over numpy arrays.
Numpy volgt niet noodzakelijk de bovenstaande mechanismen – methode 1 genereert bijvoorbeeld een fout, en methode 3 hierboven zou bijvoorbeeld the\_array.size == 0
moeten zijn.