gpt4 book ai didi

python - 在未知数量的列表中查找每个列表的唯一元素部分

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:42 26 4
gpt4 key购买 nike

我正在尝试为后续问题找到有效的解决方案:

我有许多 x 列表(数量未知),每个列表都有不同但也有重叠的元素。我想找到每个列表特有的元素并分别输出。

例如,如果我有 3 个列表:

a = [1,2,3,4] 
b = [2,5,6,7]
c = [3,6,8,9]

这将导致输出(我不只是试图找到独特的元素):

a --> [1,4]
b --> [5,7]
c --> [8,9]

假设一个列表是按顺序生成的。我正在考虑使用集合,但相信在生成每个列表时可以解决这个问题。

最佳答案

这是一个 O(N) 的简单解决方案,其中 N 是元素的总数。

关键思想是计算每个元素在所有列表中出现的次数。然后,您可以通过仅保留出现一次的元素来过滤每个列表。

from collections import Counter

a = [1,2,3,4]
b = [2,5,6,7]
c = [3,6,8,9]

# Count how many times each elements appear.
counter = Counter()

for l in [a,b,c]:
counter.update(l)

print(counter)

# If an element appears only once, it is an unique element !
for l in [a,b,c]:
print(*filter(lambda x: counter[x]==1, l))

输出是:

Counter({2: 2, 3: 2, 6: 2, 1: 1, 4: 1, 5: 1, 7: 1, 8: 1, 9: 1})
1 4
5 7
8 9

关于python - 在未知数量的列表中查找每个列表的唯一元素部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58268059/

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