Dire se ho:come confrontare lista di secondo, istanze di oggetti in pitone
list1 = [1,6]
list2 = [1]
voglio fare qualcosa se la lista valori di partita!
confrontarlo e fare cose dopo che
Dire se ho:come confrontare lista di secondo, istanze di oggetti in pitone
list1 = [1,6]
list2 = [1]
voglio fare qualcosa se la lista valori di partita!
confrontarlo e fare cose dopo che
Mmm, in questo modo?
if list1 == list2: # compare lists for equality
doStuff() # if lists are equal, do stuff after that
Naturalmente, è necessario chiarire cosa si intende per "se i valori di elenco corrispondono". Quanto sopra controllerà se entrambe le liste hanno gli stessi elementi, nella stessa posizione, cioè se sono uguale a.
EDIT:
La questione non è chiara, vediamo alcune possibili interpretazioni. Per verificare se tutti gli elementi list1
sono anche in list2
fare questo:
if all(x in list2 for x in list1):
doStuff()
O fare qualcosa con ogni elemento list1
che appartiene anche a list2
, fare questo:
for e in set(list1) & set(list2):
doStuff(e)
Uso any()
:
>>> L1 = [1,6]
>>> L2 = [1]
>>> any(i in L1 for i in L2)
True
Praticamente, si scorre ogni elemento nella L2
e se qualche elemento in L2 è in L1
, allora sarà tornare True
.
Se volete vedere se ogni articolo è nell'altra lista, e la stampa quali sono e quali non lo sono:
>>> for i in L2:
... if i in L1:
... print i, "is in L1"
... else:
... doStuff(i)
Questa sarebbe ignorare o più delle liste. –
@MarkusUnterwaditzer Cosa c'entra l'ordine? – TerryA
direi che '' [1,2,3] '' e '' [3,2,1] '' sono uguali. –
metodo semplice, anche se non necessariamente la più efficiente (utilizzando all()
anziché any()
):
listsEqual = len(list1) == len(list2) and all(list1[i] == list2[i] for i in range(len(list1))
No, in Python questo controlla se entrambi gli elenchi sono _equal_: stessi elementi, nella stessa posizione.È in Java, dove ciò significherebbe un confronto di identità, in Python è un confronto di uguaglianza –
Grazie per aver chiarito che :) upvoted. –
In realtà voglio scoprire se ogni elemento nella lista 1 è presente nella lista 2 o no se esiste quindi fare qualcosa con la corrispondenza – user2481309