Wie die Rückkehr der Länge jedes Elements in einer Liste mit der Len () - Funktion?
Das problem:
Schreiben Sie eine Schleife, die durchläuft:
['spam!', 1, ['Brie', 'Roquefort', 'Pol le Veq'], [1, 2, 3]]
und druckt die Länge der einzelnen Elemente.
Habe ich versucht so meine Lösung:
list = ['spam!', 1,['Brie', 'Roquefort', 'Pol le Veq'], [1,2,3]]
element = 0
for i in list:
print len(list[element])
element += 1
Aber er erhält diese Fehlermeldung: TypeError: object of type 'int' has no len()
- Was sollte die Länge der
1
? Und was ist mit1323
? Was ist Ihre erwartete Ausgabe, die für Ihre aktuelle Eingabe? - Verwenden Sie nicht
list
als variable Namen, sonst kann es zu mehr Fehlern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als andere haben darauf hingewiesen, daß die Zahl 1 (zweiter Eintrag in der Hauptliste) nicht über eine definierte Länge. Aber man kann immer noch die Ausnahme abfangen, und drucken Sie etwas, wenn so etwas wie dies der Fall ist, z.B.
Zunächst mit, dass die element-variable als index für den Zugriff auf Elemente der Liste ist überflüssig. Beim schreiben einer for-Schleife in python, die Sie Durchlaufen jedes Element in der Liste, so dass, auf iteration 1:
Und für die nächste iteration:
für Element in [1, [1,2,3]]:
# item = [1, 2, 3]
...
Das nächste problem ist, dass Sie einen Eintrag in dieser Liste, die keine festgelegte Länge. Ich weiß nicht, was Sie tun möchten, aber eine möglich Lösung ist das, was gedruckt wird die Länge des Elements (in Ziffern) wenn das Element ist eine ganze Zahl:
Ist die einzige mögliche Lösung ändern Sie die
int
Typstr
- und Umgekehrt.Wenn es nur eine übung, es sollte nicht sein ein problem.