我有3个列表:
a = [[abc, def, ghd], [...], ...]
b = [[abc, olnaf, kjbdsa], [...], ...]
c = [[abc, aeufga, älaga], [...], ...]
如何根据第一列(例如abc)找到交叉元素?
我想获得一个新列表,其中包含共享的所有三个列表中的项目'abc'
条目。
问候
克里斯
答案 0 :(得分:0)
你的意思是在第一列的第一项中出现字符串吗?
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})
答案 1 :(得分:0)
您可以使用套件
直接找到交叉点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'}
答案 2 :(得分:0)
感谢您的回复。最后我用一个Pandas Dataframe和感兴趣的列上的内连接做了。