Ich habe eine Liste in Python und ich würde gerne durchlaufen, und selektiv eine Liste, die alle Elemente mit Ausnahme der aktuellen k-ten Element enthält. Eine Möglichkeit, die ich tun kann, ist dies:Liste ohne k'th Element effizient und nicht-destruktiv
l = [('a', 1), ('b', 2), ('c', 3)]
for num, elt in enumerate(l):
# construct list without current element
l_without_num = copy.deepcopy(l)
l_without_num.remove(elt)
aber das scheint ineffizient und unelegant. Gibt es einen einfachen Weg, es zu tun? Hinweis Ich möchte im Wesentlichen ein Stück der ursprünglichen Liste erhalten, das das aktuelle Element ausschließt. Es scheint, als sollte es einen einfacheren Weg geben, dies zu tun.
danke für Ihre Hilfe.
eine andere Weise, die ich tun dachte, das wie folgt lautet: # annehmen k das auszuschließende Element Filter (Lambda x: x [0]! = k, l) ist das respektabel? Gibt es bessere Wege? – user248237dfsf
Können Sie mir erklären, was das erwartete Ergebnis ist? "NameError: Name 'Kopie' ist nicht definiert" – Pepijn
Es ist mir nicht klar, was das Ergebnis dieser Operation sein soll. Die von Ihnen gepostete Implementierung erstellt drei verschiedene Kopien der ursprünglichen Liste, wobei drei verschiedene Elemente fehlen. Kannst du deine Ziele klarstellen? –