gpt4 book ai didi

python - 从列表的 2 个列表中按行提取公共(public)元素

转载 作者:太空宇宙 更新时间:2023-11-04 08:43:59 26 4
gpt4 key购买 nike

我在 Python 中有两个具有相同 len 的列表列表(在这个例子中假设为 3)。

A = [['Horse','Duck','Goat'],['Rome','New York'],['Apple','Rome','Goat','Boat']]

B = [['Carrot','Duck'],['Car','Boat','Plane'],['Goat','Apple','Boat']]

我想匹配每一行中的元素并创建一个新的公共(public)元素列表。我需要的结果输出是:

c = [['Duck'],[],['Apple','Goat','Boat']]

和,

d = [1,0,3] ; where d is a list with the count of common elements at each row.

请注意,在列表列表的每一行中,元素可以以任何顺序出现。

最佳答案

使用 list comprehensionzip :

>>> A = [['Horse','Duck','Goat'],['Rome','New York'],
['Apple','Rome','Goat','Boat']]
>>> B = [['Carrot','Duck'],['Car','Boat','Plane'],
['Goat','Apple','Boat']]
>>> c = [[x for x in a if x in b] for a, b in zip(A, map(set, B))]
>>> d = [len(x) for x in c]
>>> # or d = list(map(len, c)) # you can omit `list` in python 2.x
>>> c
[['Duck'], [], ['Apple', 'Goat', 'Boat']]
>>> d
[1, 0, 3]

关于python - 从列表的 2 个列表中按行提取公共(public)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42395318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com