【发布时间】:2019-01-18 00:01:58
【问题描述】:
我有一个从产品及其变体中提取的字典列表,其定义如下:
attribute_list = [
{'Finish': 'Chrome'},
{'Size': 'Large'},
{'Weight': '1.6kg'},
{'Finish': 'Chrome'},
{'Weight': '1.9kg'}
]
我正在寻找创建两个列表,一个列表中没有重复的字典,即:
compiled_list = [
{'Finish': 'Chrome'}
{'Size': 'Large'}
]
...以及另一个包含重复键和值的,即:
duplicates_list = [
{'Weight': '1.6kg'}
{'Weight': '1.9kg'}
]
下面是我到目前为止的代码,这让我有两个字典,但是 1)我认为这非常低效,2)我不知道如何删除重复字典的第一个实例.
compiled_list = list()
compiled_list_keys = list()
duplicates_list = list()
for attribute in attribute_list:
for k, v in attribute.items():
if k not in compiled_list_keys:
compiled_list_keys.append(k)
compiled_list.append(attribute)
else:
if attribute not in compiled_list:
duplicates_list.append(attribute)
compiled_list_keys.remove(k)
【问题讨论】:
-
你展示的东西是列表还是字典?语法是两者的混合,文字是“list of dict”。
-
他们每个人都可能是一个单独的字典。
-
是的,他们是个别的 dicts 为缺乏明确性而道歉。
-
@PeteDermott 为什么
{'Finish': 'Chrome'}在compiled_list 中没有重复? -
问题:可以更改数据类型吗?在我看来,list + dict 的选择很糟糕。
标签: python dictionary duplicates