Sprich, wenn ich:wie zum Vergleich zweier Liste, Objektinstanzen in Python
list1 = [1,6]
list2 = [1]
Ich möchte etwas tun, wenn die Liste Werte übereinstimmen!
Vergleichen Sie es und tun Sachen nach, dass
Sprich, wenn ich:wie zum Vergleich zweier Liste, Objektinstanzen in Python
list1 = [1,6]
list2 = [1]
Ich möchte etwas tun, wenn die Liste Werte übereinstimmen!
Vergleichen Sie es und tun Sachen nach, dass
Mmm, wie das?
if list1 == list2: # compare lists for equality
doStuff() # if lists are equal, do stuff after that
Natürlich müssen Sie klären, was Sie meinen, wenn "list lists match". Obiges wird überprüfen, ob beide Listen die gleichen Elemente in derselben Position haben - das heißt, wenn sie gleich sind.
EDIT:
Die Frage ist nicht klar, lassen Sie uns einige mögliche Interpretationen sehen. Um zu überprüfen, ob alle Elemente in list1
sind auch in list2
dies tun:
if all(x in list2 for x in list1):
doStuff()
Oder, etwas zu tun mit jedem Element in list1
, die auch in list2
gehört, dies zu tun:
for e in set(list1) & set(list2):
doStuff(e)
Verwendung any()
:
>>> L1 = [1,6]
>>> L2 = [1]
>>> any(i in L1 for i in L2)
True
Ziemlich viel, es durchläuft jedes Element in L2
und wenn irgendein Element in L2 in L1
ist, dann wird es True
zurückkehren .
Wenn Sie, ob jedes Element in der anderen Liste sehen wollen, und drucken welche sind und welche nicht:
>>> for i in L2:
... if i in L1:
... print i, "is in L1"
... else:
... doStuff(i)
das o würde ignorieren Liste der Listen. –
@MarkusUnterwaditzer Was hat der Auftrag damit zu tun? – TerryA
würde sagen, dass "[1,2,3]" und "[3,2,1]" gleich sind. –
Einfache Methode, obwohl nicht unbedingt die effizienteste (mit all()
statt any()
):
listsEqual = len(list1) == len(list2) and all(list1[i] == list2[i] for i in range(len(list1))
Nein, in Python wird geprüft, ob beide Listen _equal_: gleiche Elemente an derselben Position sind.Es ist in Java, wo dies einen Identitätsvergleich bedeuten würde, in Python ist es ein Gleichheitsvergleich –
Danke für die Klärung :) upvoted. –
Actualu ich möchte finden, ob jedes Element in Liste 1 ist dort in Liste 2 oder nicht, wenn es existiert, dann tun Sie etwas mit der Übereinstimmung – user2481309