Python:相交多个列表列

2024-10-03 21:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三张单子:

a = [[abc, def, ghd], [...], ...]
b = [[abc, olnaf, kjbdsa], [...], ...]
c = [[abc, aeufga, älaga], [...], ...]

如何根据第一列(例如abc)找到相交元素?你知道吗

我想得到一个新的列表,其中包含所有三个共享的列表项,例如'abc'条目。你知道吗

您好

克里斯


Tags: 元素列表def条目单子abcghdlaga
3条回答

谢谢你的回复。最后,我使用了一个Pandas数据帧和感兴趣的列的内部连接。你知道吗

可以使用集合直接查找交点

a = [["abc", "def", "ghd"], ["1", "2", "3"]]
b = [["abc", "olnaf", "kjbdsa"], []]
c = [["abc", "aeufga", "älaga"], ["1", "2"]]

for i, (a, b, c) in enumerate(zip(a, b, c)):
    print("Index", i)
    print("  a & b:", set(a) & set(b))
    print("  b & c:", set(b) & set(c))
    print("  a & c:", set(a) & set(c))

输出

Index 0
  a & b: {'abc'}
  b & c: {'abc'}
  a & c: {'abc'}
Index 1
  a & b: set()
  b & c: set()
  a & c: {'2', '1'}

你是说字符串出现在第一列的第一项中吗?你知道吗

column = 0

a = [["abc", "def", "ghd"], [], []]
b = [["abc", "olnaf", "kjbdsa"], [], []]
c = [["abc", "aeufga", "älaga"], [], []]

from collections import Counter
Counter([i[0] for i in list(zip(a,b,c))[column]])

印刷品

Counter({'abc': 3})

相关问题 更多 >