gpt4 book ai didi

python - 比较两个集合列表

转载 作者:行者123 更新时间:2023-12-05 01:54:19 24 4
gpt4 key购买 nike

例如,我有两个集合列表:

list1 = [{'a','b'}, {'c','d'}, {'a','b','c'}, {'c','f'}]
list2 = [{'c','d','e'}, {'e','f'}, {'a','b','d'}, {'c','f'}]

我需要输出一个索引列表,其中 list1[i] 和 list2[i] 不共享公共(public)元素。 (没有交集)

在这种情况下,{'a','b'}{'c','d','e'} 中没有公共(public)元素.

  1. {'c','d'}{'e','f'} 中没有公共(public)元素.
  2. {'a','b','c'}有共同元素'a''b'{'a','b','d'} .
  3. {'c','f'}有共同元素'c''f'{'c','f'} .

所以 list1[0]list1[1] list2[0] 中没有相同的元素和 list2[1]

它将返回索引列表:list = [0,1]

我的做法是:

for l1,l2 in zip(list1,list2):
for i in l1:
if i in l2:
print(i)

这显然是不正确的。感谢您的帮助。

最佳答案

您可以枚举压缩列表并根据这对集合 is disjoint 是否过滤索引。 :

list1 = [{'a','b'}, {'c','d'}, {'a','b','c'}, {'c','f'}]
list2 = [{'c','d','e'}, {'e','f'}, {'a','b','d'}, {'c','f'}]

indices = [i for i, (a, b) in enumerate(zip(list1, list2)) if a.isdisjoint(b)]

# [0, 1]

关于python - 比较两个集合列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70726564/

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