2016-05-25 5 views
0

例:Pythonで2つの異なるリストの要素を条件でチェックする方法は?

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 

私たちは、次のロジックを作成する必要があります:リストaの両方の要素がリストbにある場合、それがさらに進み、リストaの一つの要素は、それが持っているリストbでは利用できない場合、一方、終了します。私に解決策を提案してください。

+0

何をどうすべきだと思います( '[ 'A'、 'B']、[ 'B' を、比較 '' ]) '? – thefourtheye

+0

また、 '比較'(['a'、 'a'、 'b']、['a'、b '])' – thefourtheye

+0

'a = [' a、 'c'] b = ['a' 'a'、 'e'] b = ['a'、 'b'、 'c'、 'd'] ' 'b'、 'c'、 'd'] 'これは正しくない。なぜなら 'e'はbリストにはないから@thefourtheye – prabha

答えて

0

これはあなたの探しているものですか?

あなたは条件分岐で上記の関数を使用することができます
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]) 

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

それがどのように動作するかを理解するために、このコードを試してみてください:

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

素晴らしいが、私たちはこれを試してみた...あなたのコードはPython的な方法である' a = ['a' 、 'b'] ' ' b = ['a '、' b '、' c '] ' 'フラグ=真 '' iのための' ' '他:' ' フラグ= false'を 'かのフラグ==真: ' は' '他 A'印刷: – prabha

+0

' '' 印刷 "偽" 私は間違いなく何 'retuを持っていますrn all'は実際にここにいますか? – prabha

+0

'' [item in a1のitem in a item] ''は[True、True] ''を返すのに対し、['' item in a2 ''は '' True、False ' 。 ** all ** **返された理解の要素が「真」である場合にのみ進めるべきです。このため、組み込み関数all()を使用する必要があります。詳細については、https://docs.python.org/2/library/functions.html#allをご覧ください。 – Tonechas

0

使用して比較する方法としてこれを作りますall 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 

は今の呼び出しでyとしてxとしてabを渡す: -

>>> # 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 
関連する問題