2016-05-25 8 views
0

Beispiel:Wie überprüft man Elemente in zwei verschiedenen Listen in Python mit Bedingung?

a = ['a', 'c']  # first test 
b = ['a', 'b', 'c'] 
a = ['a','e']  # second test 
b = ['a','b','c'] 
list_final = compare(a,b) # we tried this not working 

Wir haben die folgende Logik schaffen: Wenn beiden Elemente der Liste a in Liste sind b, wird es weiter gehen, während, wenn ein Element der Liste a ist in Liste b es nicht verfügbar ist zu beenden. Bitte schlage mir eine Lösung vor.

+0

Was denken Sie passieren sollte 'vergleichen ([ 'a', 'b'] [ 'b', 'a' ]) '? – thefourtheye

+0

Vergleichen Sie auch (['a', 'a', 'b'], ['a', 'b']) ' – thefourtheye

+0

' a = ['a,' c '] b = [' a ', 'b', 'c', 'd'] 'das ist richtig, weil alle Elemente in einer Liste in der Liste b übereinstimmen ....' a = ['a', 'e'] b = ['a', ' b ',' c ',' d '] 'das ist nicht korrekt, weil' e 'nicht in der b-Liste ist @thefourtheye – prabha

Antwort

0

Ist das wonach Sie suchen?

def compare(x, y): 
    "Return True if all the elements of x are in y, False otherwise" 
    return all([item in y for item in x]) 

können Sie die Funktion verwenden oben in bedingte Verzweigungen:

def wrapper(x, y): 
    if compare(x, y): 
     print 'Proceed further' 
    else: 
     print 'Break' 

diesem Code Geben Sie einen Versuch, um herauszufinden, wie es funktioniert:

>>> a1 = ['a','c'] 
>>> a2 = ['a','e'] 
>>> b = ['a','b','c'] 
>>> wrapper(a1, b) 
Proceed further 
>>> wrapper(a2, b) 
Break 
+0

genial aber wir haben es so versucht ... dein Code ist wie ein Python-Weg' a = [' a ' 'b'] ' ' b = ['a', 'b', 'c'] ' ' flag = Wahr ' 'für i in a:' 'wenn ich in b:' 'pass' 'anderes:' ' flag = false' ' wenn Flag == True: '' a' drucken 'anderes:' ' print "false"' – prabha

+0

ich habe Zweifel, was 'retu rn all 'macht das eigentlich hier ???? – prabha

+0

Das Verständnis "[item in a1 für item in b]" 'return' '[True, True]' 'während' '[item in a2 für item in b]' 'return' '[True, False]' ' . Sie sollten nur fortfahren, wenn ** all ** die Elemente des zurückgegebenen Verständnisses "True" sind. Aus diesem Grund müssen Sie die integrierte Funktion all() verwenden. Überprüfen Sie https://docs.python.org/2/library/functions.html#all für die Details. – Tonechas

0

Machen Sie diese als Ihre vergleichen Methode all Schlüsselwort von python: -

def compare(x,y): 
    if all(i in y for i in x): 
     print "Proceed" 
     # Call the next code piece 
    else: 
     print "Terminate" 
     break 

passieren nun a als x und b als y im Aufruf: -

>>> # Test 1 
>>> a = ['a', 'c']  # first test 
>>> b = ['a', 'b', 'c'] 
>>> compare(a, b) 
Proceed 

>>> # Test 2 
>>> a = ['a', 'e']  # first test 
>>> b = ['a', 'b', 'c'] 
>>> compare(a, b) 
Terminate 
Verwandte Themen