Hallo Ich habe jetzt seit ein paar Monaten programmiert und kenne die Grundlagen, aber ich habe ein Problem mit der Mitgliedschaft, für das ich keine Lösung finden kann.
Ich habe eine Liste von Listen mit Ganzzahlpaaren, und ich möchte die Liste entfernen, in der die Ganzzahl "a" enthalten ist. Ich dachte, Sets zu verwenden, war der einfachste Weg. Bellow ist der Code:
%Vor% Ich hatte auch versucht, s.subsubset (t) zu verwenden, bis ich erkannte, dass dies getestet wurde, wenn jedes -Element in s
Danke!
Sie möchten testen, ob es eine Schnittmenge :
%Vor%oder
%Vor%oder umgekehrt, dass die Mengen disjoint :
%Vor% Die Methodenformen nehmen any iterierbar an, Sie müssen nicht einmal group
in einen Satz dafür umwandeln. Der folgende Einzeiler würde auch funktionieren:
Demo:
%Vor%Wenn alles, was Sie testen, ein -Element ist, dann könnte es sein, dass das Erstellen von Sets mehr Leistung kostet als das, was Sie beim Testen auf Mitgliedschaft bekommen, und einfach:
%Vor% wobei group
eine kurze Liste ist.
Sie können das Modul timeit
verwenden, um Teile von Python-Code zu vergleichen, um zu sehen, was am besten funktioniert für Ihre spezifischen typischen Listengrößen.
Vielleicht könntest du List Comprehension verwenden:
%Vor%Bearbeiten basierend auf einem Kommentar:
Nun zu den Neugierigen, was ich tun möchte ist; Ich habe eine Liste wie die folgend: [[error, [[group_item_1, group_item_2], [...], [...], [...]]], [mehr wie dieses vorhergehende], [...]], und ich möchte das bekommen Item mit dem geringsten Fehler und das hat kein "a" in group_item_1 oder group_item_2. Die Listen sind bereits nach Fehler sortiert. Ich gehe fast es: D
Dies sollte den Trick machen:
%Vor% Sie müssen hier keine Sets verwenden, Sie können die Mitgliedschaft von Elementen in Listen testen. Sie scheinen auch in
zu haben, wobei ich denke, dass Sie not in
haben sollten.
Dieser Code ist Ihrem ähnlich und sollte funktionieren:
%Vor%Allerdings verwendet ein kürzerer, mehr pythonischer Weg Listenergänzungen :
%Vor%Wenn Sie testen, ob ein Element in einer viel längeren Liste ist, sollten Sie stattdessen Sets für die Leistung verwenden.