Python 将多个列表进行比较 Table

Python comparing multiple lists into Comparison Table

我不是在寻找确切的解决方案,而是在寻找要研究的关键字。不知道为什么,但我真的无法为这个非常简单的问题找到任何示例。

假设我有 3 个列表(可能更多)如下所示:

l1=[x,y,z]
l2=[a,y,z,b]
l3=[a,b,c,d,e]

我想要做的是比较 table 看起来像这样:

    l1  l2  l3
a   0   1   1
b   0   1   1
c   0   0   1
d   0   0   1
e   0   0   1
x   1   0   0
y   1   1   0
z   1   1   0

列表可以有不同的长度,并且它们绝不会像这样重复:

l = [x,x,y]

再次重申,我并不是要找人帮我处理任务,我只是在寻找一些关键字、建议和伪代码来开始工作。

它可能不是最快或最有效的解决方案,但我是这样做的。 我创建了一个字典,其中的键是所有列表中的值。 值是出现在哪个列表中。 然后我逐行打印 headers (列表名称)和每个键和值。 我很确定有比我的解决方案更好的方法。

l1=["x","y","z"]
l2=["a","y","z","b"]
l3=["a","b","c","d","e"]

values = sorted(set(l1 + l2 + l3))

d = {}
for value in values:
    x = []
    if value in l1:
        x.append("1")
    else:
        x.append("0")
        
    if value in l2:
        x.append("1")
    else:
        x.append("0")
        
    if value in l3:
        x.append("1")
    else:
        x.append("0")
    d[value] = x

print(" "*3 + "l1 l2 l3")

for k in d:
    print(k + " "*2 + "  ".join(d[k]))   

得到澄清后,如果你想旋转你的数据,为什么不尝试字典,以行 ID 为键,值是列表 ID 的列表(因为它们是交换的,你应该有一些识别方法)?例如:

{ 'a': [l2, l3],
  'b': [l2, l3],
  'c': [l3],
...
}