Aus irgendeinem seltsamen Grund, dachte ich sofort an eine rekursive Routine, aber im Wesentlichen ist es das tut, was Kostas tun ist, ich kann es nur einfacher zu folgen finden:
def tree_appender(tree, location, thing):
sub_tree_index = location.pop(0)
if len(location) > 0:
tree_appender(tree[sub_tree_index], location, thing)
else:
tree[sub_tree_index].append(thing)
return
>>> l1 = [2, 3, 2]
>>> l2 = [0, [0, 1], [0, 1, 0, [0, 1, [0, 0]]]]
>>> python_file.tree_appender(l2, l1, "dave")
>>> l2
[0, [0, 1], [0, 1, 0, [0, 1, [0, 0, 'dave']]]]
Es wird natürlich fehlschlagen, wenn l1 war [0] zum Beispiel als l2 [0] ist ein Int keine Liste. Du könntest das testen und alles, was dazu gehört, in eine Liste einfügen, wenn das wahrscheinlich ist.
Obwohl 'exec' in allgemeinen Fällen vermieden werden sollte, können Sie es einfach versuchen, völlig basierend auf Zeichenfolgenoperationen (ersetzen Sie einfach Komma durch ''] [' 'und verketten Sie mit Ihrem Befehl). – YiFei
Können Sie mir bitte ein Beispiel für Ihren Vorschlag geben? Vielen Dank – Theo
Ja, sicher, ich habe eine Antwort geschrieben, aber Sie sollten wissen, dass es vollständig abhängig von String und Verwendung Feature als reflektive Programmierung, die potenziell gefährlich sein kann, siehe [dieser Beitrag auf SO] (http: // stackoverflow .com/fragen/1933451/warum-sollte-exec-and-eval-vermieden werden. – YiFei