Seite 1 von 1
Anzahl aller Elemente in einer Liste
Verfasst: Donnerstag 11. Dezember 2008, 13:25
von peddy
Hallo,
ich lerne gerade Python und spiele daher gerade mit Listen rum. Dabei tauchte eine Frage auf die ich bisher nicht klären konnte.
Wie ermittel ich wie viele Eintrage eine Liste hat bzw. was der höchste Index ist?
Verfasst: Donnerstag 11. Dezember 2008, 13:27
von peddy
Ok habs auf einmal doch noch gefunden. len()
Verfasst: Donnerstag 11. Dezember 2008, 16:18
von derdon
Code: Alles auswählen
In [1]: my_list = [23, 42, "SPAM", "eggs"]
In [2]: my_list.index(my_list[-1]) + 1
Out[2]: 4

Verfasst: Donnerstag 11. Dezember 2008, 16:21
von Zap
derdon hat geschrieben:Code: Alles auswählen
In [1]: my_list = [23, 42, "SPAM", "eggs"]
In [2]: my_list.index(my_list[-1]) + 1
Out[2]: 4

Neenee
Code: Alles auswählen
In [10]: my_list = [23, "eggs", 42, "SPAM", "eggs"]
In [11]: my_list.index(my_list[-1]) + 1
Out[11]: 2
Verfasst: Donnerstag 11. Dezember 2008, 17:04
von derdon
Code: Alles auswählen
In [71]: my_list
Out[71]: [23, 'eggs', 42, 'SPAM', 'eggs']
In [72]: def len_(the_list):
try:
if the_list.count > 1:
return the_list.index(the_list[-1], the_list.count(the_list[-1])) + 1
else:
return the_list.index(the_list[-1]) + 1
except IndexError:
return 0
....:
....:
In [80]: len_(my_list)
Out[80]: 5
Jetzt aber
Edit: IndexError wird abgefangen. Wenn die Liste leer ist, wird 0 zurückgegeben, weil die Länge dann gleich null ist.
Verfasst: Donnerstag 11. Dezember 2008, 17:32
von BlackJack
@derdon: Die *Länge* ist aber 5 und nicht 4.
Code: Alles auswählen
In [231]: my_list = [23, 'eggs', 42, 'SPAM', 'eggs']
In [232]: sum(1 for dummy in my_list)
Out[232]: 5
Verfasst: Donnerstag 11. Dezember 2008, 17:39
von derdon
Habs schon berichtigt (siehe oben).