[英]How to calculate mutual elements between two 2D arrays in Python?
我有2D陣列,我想比較
['A','E','C','G', 'T'] & ['A','C','E','N','M']
['a','f','b','c','u'] & ['a','b','c','y','l']
並計算相同的元素(無論元素的順序如何)。
aaa = [['A','E','C','G','T'],['a','f','b','c','u']]
bbb = [['A','C','E','N','M'],['a','b','c','y','l']]
因此,在此示例中,輸出為6(3+3)
我試過了:
c = sum(ii[0] == ii[1] for i in zip(aaa, bbb) for ii in zip(*i))
print(c)
但輸出為2 (1+1)
下面
set1 = set(['A','E','C','G', 'T'])
set2 = set(['A','C','E','N','M'])
common_elements = set1.intersection(set2)
print(common_elements)
print('Number of common elements is: {}'.format(len(common_elements)))
輸出
{'A', 'C', 'E'}
Number of common elements is: 3
您可以使用:
sum(len(set(ai) & set(bi)) for ai, bi in zip(aaa, bbb))
這會將基於元素的子列表轉換為集合,並計算相交中的元素數量。
例如:
>>> sum(len(set(ai) & set(bi)) for ai, bi in zip(aaa, bbb))
6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.