535 Stimmen

Wie kann ich zwei Listen in Python vergleichen und Übereinstimmungen zurückgeben

Ich möchte zwei Listen nehmen und die Werte finden, die in beiden erscheinen.

a = [1, 2, 3, 4, 5]
b = [9, 8, 7, 6, 5]

returnMatches(a, b)

würde zurückkehren [5] zum Beispiel.

23voto

Greg Hewgill Punkte 882617

Am einfachsten ist es, wenn Sie setzt :

>>> a = [1, 2, 3, 4, 5]
>>> b = [9, 8, 7, 6, 5]
>>> set(a) & set(b)
set([5])

17voto

setz Punkte 161
>>> s = ['a','b','c']   
>>> f = ['a','b','d','c']  
>>> ss= set(s)  
>>> fs =set(f)  
>>> print ss.intersection(fs)   
   **set(['a', 'c', 'b'])**  
>>> print ss.union(fs)        
   **set(['a', 'c', 'b', 'd'])**  
>>> print ss.union(fs)  - ss.intersection(fs)   
   **set(['d'])**

17voto

mushfiq Punkte 1520

Sie können dies auch versuchen, indem Sie gemeinsame Elemente in einer neuen Liste speichern.

new_list = []
for element in a:
    if element in b:
        new_list.append(element)

13voto

Timothy Pratley Punkte 10356

Möchten Sie Duplikate? Wenn nicht, sollten Sie vielleicht stattdessen Sets verwenden:

>>> set([1, 2, 3, 4, 5]).intersection(set([9, 8, 7, 6, 5]))
set([5])

11voto

itmatters Punkte 555

Eine andere, etwas funktionalere Art, die Listengleichheit für Liste 1 (lst1) und Liste 2 (lst2) zu prüfen, wobei die Objekte eine Tiefe von eins haben und die Reihenfolge beibehalten wird:

all(i == j for i, j in zip(lst1, lst2))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X