gpt4 book ai didi

python - 如果其中一个值不唯一,从 dict 列表中删除元素的 pythonic 方法是什么?

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

删除对某些键不唯一的元素的 pythonic 方法是什么?

假设有一个字典列表,例如:

[
{'a': 1, 'b': 'j'},
{'a': 2, 'b': 'j'},
{'a': 3, 'b': 'i'}
]

预期的输出将删除第二个元素,因为键 b 在多个元素中等于 j。因此:

[
{'a': 1, 'b': 'j'},
{'a': 3, 'b': 'i'}
]

这是我试过的:

input = [
{'a': 1, 'b': 'j'},
{'a': 2, 'b': 'j'},
{'a': 3, 'b': 'i'}
]

output = []
for input_element in input:
if not output:
output.append(input_element)
else:
for output_element in output:
if input_element['b'] != output_element['b']:
output.append(input_element)

如果这是一个元组列表,解决方案是否会更简单,例如:

[(1, 'j'), (2, 'j'), (3, 'i')]

# to produce
[(1, 'j'), (3, 'i')]

最佳答案

这是一种使用 any() 和列表理解的方法:

代码:

l=[
{'a': 1, 'b': 'j'},
{'a': 2, 'b': 'j'},
{'a': 3, 'b': 'i'}
]

new_l = []

for d in l:
if any([d['b'] == x['b'] for x in new_l]):
continue
new_l.append(d)

print(new_l)

输出:

[{'a': 1, 'b': 'j'}, {'a': 3, 'b': 'i'}]

关于python - 如果其中一个值不唯一,从 dict 列表中删除元素的 pythonic 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67828246/

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