10

そのため、まだコードが書かれていない大まかな例を挙げると、両方のリストに共通するものをどのように把握できるかについて興味があります。

例:

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'
4

4 に答える 4

30

これには設定交差点を使用します。

list(set(listA) & set(listB))

与えます:

['a', 'c']

セットを扱っているため、順序が保持されない場合があることに注意してください。

' '.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']
于 2012-07-28T02:21:41.927 に答える
2

2 つのリストが同じ長さの場合は、次のように並べて反復できます。

list_common = []
for a, b in zip(list_a, list_b):
    if a == b:
        list_common.append(a)
于 2012-07-28T02:21:54.003 に答える
1

それらを集合として交差させる:

set(listA) & set(listB)
于 2012-07-28T02:22:40.547 に答える