f = (3, 4, 5, {3: 4}, [16, 7, 8])
g = (1, 2, [3, 4, [5, 6], {7: 8}], 9, 10, {11: f}, {12: [1, 2, {3, 4}, [5, 6]]})
Ich versuche rekursiv über g
iterieren.wie in Python 2 erschöpfend zu Iterate?
Wie jedes Element rekursiv in Python iterieren, das für jede Liste mit beliebiger Verschachtelungsebene funktioniert?
Ich habe versucht mit hasattr
, __iter__
, aber wird nicht mit unbekannten Verschachtelungsebene arbeiten.
f=(3,4,5,{3:4},[6,7,8])
g = (1, 2, [3, 4, [5, 6], {7: 8}], 9, 10, {11: (3, 4, 5, {3: 4}, [16, 7, 8])}, {12: [1, 2, set([3, 4]), [5, 6]]})
print g
for each in g:
print each
try:
if hasattr(each,"__iter__"):
for ind in each:
print ind
if hasattr(ind,"__iter__"):
for ind1 in ind:
print ind1
Was macht 'f' hier? – Spacedman
Sie erwähnen rekursiv, haben aber keine rekursive Funktion geschrieben - vielleicht versuchen Sie das? Beachten Sie auch, dass Strings bei Code wie diesem ein Problem darstellen können. Seien Sie vorsichtig, wenn sie sich in Ihrer Eingabe befinden. – jonrsharpe
Was ist Ihre gewünschte Ausgabe? Wenn es ein Wörterbuch gibt, in dem jedes Element aus einem Schlüssel/Wert-Paar besteht, über welches man iterieren soll? Nur der Schlüssel? Nur der Wert? Beide? –