質問

2つのリストがある場合は、Pythonで次のように述べています。

l1 = ['a', 'b', 'c', 'd']
l2 = ['c', 'd', 'e']

それらが同じものを持っている要素の数を見つける方法はありますか?その場合、それは2(cとd)になります

ネストされたループを実行できることは知っていますが、array_intersect関数を備えたphpのような構築された機能はありません

ありがとう

役に立ちましたか?

解決

そのためにセット交差点を使用できます:)

l1 = ['a', 'b', 'c', 'd']
l2 = ['c', 'd', 'e']
set(l1).intersection(l2)
set(['c', 'd'])

他のヒント

>>> l1 = ['a', 'b', 'c', 'd']
>>> l2 = ['c', 'd', 'e']
>>> set(l1) & set(l2)
set(['c', 'd'])

一意の要素のみがある場合は、セットデータ型を使用して交差点を使用できます。

s1, s2 = set(l1), set(l2)
num = len(s1.intersection(s2))

セットの使用:

l1 = ['a', 'b', 'c', 'd']
l2 = ['c', 'd', 'e']


def list_count_common(list_a, list_b):
    result = len(list(set(list_a) & set(list_b))) ## this is the line that does what you want
    return result

print list_count_common(l1, l2) ## prints 2
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top