簡體   English   中英

如何在Python中計算兩個2D數組之間的互元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM