Ich habe die exakt gleiche Funktionalität mit Rekursionen implementiert, ich möchte auch eine Version ohne Rekursion, da Python ein Rekursionslimit hat und Probleme beim Teilen von Daten auftreten.Rekursives Ersetzen von Elementen in einer Liste durch Elemente einer anderen Liste
sublist2 = [{'nothing': "Notice This"}]
sublist1 = [{'include':[sublist2]}]
mainlist = [{'nothing': 1}, {'include':[sublist1, sublist2]},
{'nothing': 2}, {'include':[sublist2]}]
Was ist in der Todo zu füllen?
for i in mainlist:
if 'nothing' in i:
# Do nothing
else if 'include' in i:
# Todo
# Append the contents of the list mentioned recursively
# in it's own place without disrupting the flow
Nach der Operation das erwartete Ergebnis
mainlist = [{'nothing': 1},
{'nothing': "Notice This"}, {'nothing': "Notice This"},
{'nothing':2},
{'nothing': "Notice This"}]
Wenn Sie sublist1 Verweise auf sublist2 bemerken. Das ist der Grund
{ 'schließen': [sublist1, sublist2]} wird ersetzt durch
{ 'nichts': "Hinweis Dieses"}, { 'nichts': "Hinweis Dieses"}
ich habe die folgenden versucht
Inserting values into specific locations in a list in Python
How to get item's position in a list?
Ich bin verwirrt zu einer Scheibe zuweisen. Willst du das rekursiv machen oder nicht? Ihr erster Absatz und Titel widersprechen einander. – Jokab
Sie haben Recht, dass Python Rekursionsbegrenzungen hat (standardmäßig 1000), aber wenn Ihre Datenstruktur das kaputt macht, dann würde ich sagen, dass etwas ernsthaft mit Ihren Daten nicht stimmt. –
@Jokab Ich meinte die Liste sollte rekursiv bevölkern. Ich möchte keine Rekursionen verwenden. Wird es korrigieren –