Ich habe eine Reihe von Listen in Listen. Die Verschachtelungstiefe wird zur Laufzeit bestimmt, und ich möchte nur auf eine bestimmte (Laufzeit entschieden) Tiefe zugreifen, um das, was auf dieser Ebene ist, beliebig zu manipulieren.Traverse verschachtelte Liste mit einzelnen für
Im Idealfall würde Ich mag Lage sein, dies zu tun, so einfach wie:
for x in access_list(nested_list, d)
# do stuff at nesting-depth d
Was access_list
tun soll:
>>> mylist = [[[0, 1], [2, 3]], [[4, 5], [6, 7]]]
>>> for d in range(4):
... for l in access_list(mylist, d):
... print((d, l))
(0, [[[0, 1], [2, 3]], [[4, 5], [6, 7]]])
(1, [[[0, 1], [2, 3]])
(1, [[4, 5], [6, 7]]])
(2, [0, 1])
(2, [2, 3])
(2, [4, 5])
(2, [6, 7])
(3, 0)
(3, 1)
(3, 2)
(3, 3)
(3, 4)
(3, 5)
(3, 6)
(3, 7)
Mein Versuch erwies sich im Wesentlichen nichts zu tun:
def access_list(lists, d):
if not d:
return lists
return [access_list(_list, d-1) for _list in lists]
Es gibt nur die gesamte Listenstruktur wieder zurück. Was kann ich tun, damit dies funktioniert?
Zu viel Text. Die meisten Leute werden das nicht lesen, um zu antworten. Bitte stellen Sie Ihre Frage präziser. – PyNoob
Ich stimme @pyNoob zu - machen Sie ein minimales Beispiel. Eingabe und erwartete Ausgabe. Der Titel der Frage ist einfach, warum braucht es so viel Text, um die Idee zu vermitteln? – timgeb
Ich stimme @pyNoob zu. Sie brauchen tatsächlich eine Rekursion, also stellen Sie Ihre Frage auf den Code, der nicht funktioniert, und zeigen Sie einige Ein- und Ausgaben an. –