gpt4 book ai didi

python - 仅从列表列表中保留 2 个重复项

转载 作者:行者123 更新时间:2023-11-28 16:46:54 24 4
gpt4 key购买 nike

我在 python 中有一个或多个类似于以下内容的列表:

[
['name1',value2],
['name2',value3],
['name3',value4],
['name4',value4],
['name5',value5],
['name6',value2],
['name7',value2],
['name8',value4]
]

我想从列表中删除“值”字段中重复项超过 2 个的任何列表。结果列表如下所示:

[
['name1',value2],
['name2',value3],
['name3',value4],
['name4',value4],
['name5',value5],
['name6',value2]
]

编辑:

我不认为这会是一个问题,所以为了一个明确的问题保持简单,但实际上我有四个值,而不是每个内部列表中的两个。即:

[
['name1',value2,'something','else'],
['name2',value3,'something','else'],
['name3',value4,'something','else'],
['name4',value4,'something','else'],
['name5',value5,'something','else'],
['name6',value2,'something','else']
]

Ashwini Chaudhary 的回答非常完美,但只返回前两个元素而不是所有四个元素……我没有添加完整的细节是我的错。吸取教训!

最佳答案

这段代码可以解决问题:

from collections import defaultdict
def dup2(sequence):
seen = defaultdict(int)
for key, value in sequence:
if seen[value] < 2:
seen[value] += 1
yield [key, value]

dup2 是一个生成器,因此它会在您迭代结果时处理列表:

for key, value in dup2(seq):
# ... your code here

要获得普通列表的结果,请使用 list 函数:

list(dup2(seq))

关于python - 仅从列表列表中保留 2 个重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13031655/

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