web-dev-qa-db-ja.com

Pythonの2つのリストを比較する

したがって、まだコードが記述されていない大まかな例を示すために、両方のリストに共通するものをどのように理解できるかについて興味があります。

例:

listA = ['a', 'b', 'c']
listB = ['a', 'h', 'c']

返品できるようにしたいと思います。

['a', 'c']

どうして?

おそらく次のような変数文字列を使用します。

john = 'I love yellow and green'
mary = 'I love yellow and red'

そして戻る:

'I love yellow and'
8
Matthew

これには集合交差を使用します。

_list(set(listA) & set(listB))
_

与える:

_['a', 'c']
_

setsを扱っているので、これはnot順序を保持する可能性があることに注意してください。

_' '.join(list(set(john.split()) & set(mary.split())))
'I and love yellow'
_

join()を使用して、結果のリストを文字列に変換します。

-

以下の例/​​コメントの場合、これ順序は保持されます(@ DSMからのコメントに触発されました)

_' '.join([j for j, m in Zip(john.split(), mary.split()) if j==m])
'I love yellow and'
_

リストの長さが同じではなく、結果が以下のコメントで指定されている場合:

_aa = ['a', 'b', 'c']
bb = ['c', 'b', 'd', 'a']

[a for a, b in Zip(aa, bb) if a==b]
['b']
_
20
Levon

2つのリストが同じ長さの場合は、次のように並べて繰り返すことができます。

list_common = []
for a, b in Zip(list_a, list_b):
    if a == b:
        list_common.append(a)
2
CosmicComputer

それらをセットとして交差させます。

set(listA) & set(listB)
2
Ry-