Anzahl aller Elemente in einer Liste

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
peddy
User
Beiträge: 121
Registriert: Montag 30. Juni 2008, 13:51

Donnerstag 11. Dezember 2008, 13:25

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?
peddy
User
Beiträge: 121
Registriert: Montag 30. Juni 2008, 13:51

Donnerstag 11. Dezember 2008, 13:27

Ok habs auf einmal doch noch gefunden. len()
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Donnerstag 11. Dezember 2008, 16:18

Code: Alles auswählen

In [1]: my_list = [23, 42, "SPAM", "eggs"]

In [2]: my_list.index(my_list[-1]) + 1
Out[2]: 4
8)
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Donnerstag 11. Dezember 2008, 16:21

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
8)
Neenee :P

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
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Donnerstag 11. Dezember 2008, 17:04

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 :wink:

Edit: IndexError wird abgefangen. Wenn die Liste leer ist, wird 0 zurückgegeben, weil die Länge dann gleich null ist.
BlackJack

Donnerstag 11. Dezember 2008, 17:32

@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
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Donnerstag 11. Dezember 2008, 17:39

Habs schon berichtigt (siehe oben).
Antworten