【发布时间】:2016-06-08 14:48:41
【问题描述】:
我有一个字典列表,每个字典都描述了一个文件(文件格式、文件名、文件大小……以及文件的完整路径 [始终唯一])。目标是排除描述同一文件副本的除一个字典以外的所有字典(我只希望每个文件有一个字典(条目),无论有多少副本。
换句话说:如果 2 个(或更多)dicts 仅在一个键(即路径)上有所不同 - 只留下其中一个)。
例如,这里是源列表:
src_list = [{'filename': 'abc', 'filetype': '.txt', ... 'path': 'C:/'},
{'filename': 'abc', 'filetype': '.txt', ... 'path': 'C:/mydir'},
{'filename': 'def', 'filetype': '.zip', ... 'path': 'C:/'},
{'filename': 'def', 'filetype': '.zip', ... 'path': 'C:/mydir2'}]
结果应该是这样的:
dst_list = [{'filename': 'abc', 'filetype': '.txt', ... 'path': 'C:/'},
{'filename': 'def', 'filetype': '.zip', ... 'path': 'C:/mydir2'}]
【问题讨论】:
-
标记问题的复制。查看接受的答案并使用
x['key1'] in seen or seen_add(x['key1'])解决您的问题 -
为什么会被丢弃?
{'key1': 'non_unique_value2', 'key2': 'unique_value3'} -
键和值的元组应该添加到
seen,而不是单独的值。 -
@Suzana_K,你为什么这么认为?
-
我想你会在你的问题上找到答案Here
标签: python list python-3.x dictionary python-2.x