从词典列表中删除重复项(具有唯一值)

瓦西里

我有一个字典列表,每个字典都描述一个文件(文件格式,文件名,文件大小,以及文件的完整路径[始终唯一])。目标是排除描述同一文件副本的除一个字典以外的所有字典(我只希望每个文件有一个字典(条目),无论有多少个副本。

换句话说:如果2个(或更多)字典仅在单个键(即path)中不同,则仅保留其中之一。

例如,这是源列表:

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'}]
tobias_k

使用另一个字典将列表中的字典映射到实际的字典,而无需使用“ ignored”键。这样,将仅保留每种中的一种。当然,字典是不可散列的,因此您必须使用(排序的)元组。

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'}]
ignored_keys = ["path"]
filtered = {tuple((k, d[k]) for k in sorted(d) if k not in ignored_keys): d for d in src_list}
dst_lst = list(filtered.values())

结果是:

[{'path': 'C:/mydir', 'filetype': '.txt', 'filename': 'abc'}, 
 {'path': 'C:/mydir2', 'filetype': '.zip', 'filename': 'def'}]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从词典列表中删除重复项(具有唯一值)

来自分类Dev

从列表中删除唯一值,仅保留重复项

来自分类Dev

从嵌套词典列表中删除重复项

来自分类Dev

遍历对象/值列表,删除重复项,并在View(Python)中返回唯一值

来自分类Dev

删除具有唯一索引的重复项

来自分类Dev

如何在 PySpark 中通过具有唯一值的列值标记连续重复项?

来自分类Dev

如何从向量中删除唯一值并保留重复项

来自分类Dev

R枚举具有唯一值的数据框中的重复项

来自分类Dev

列表中具有重复和位置的唯一对

来自分类Dev

计算重复项中的唯一值

来自分类Dev

过滤在某个键处具有重复值的词典列表

来自分类Dev

从具有值列表的列中检索唯一值

来自分类Dev

从具有多个属性的列表中删除重复值

来自分类Dev

删除一列动态数据中具有重复项的行的重复项

来自分类Dev

通过另一列中的唯一值删除重复项

来自分类Dev

Excel:将所有单元格值从整个工作表复制到新工作表,进行排序并删除重复项,以形成唯一值列表

来自分类Dev

返回唯一值而不删除重复项-C#

来自分类Dev

返回唯一值而不删除重复项-C#

来自分类Dev

在具有重复唯一值的Rstudio中查找重复值的频率

来自分类Dev

如何在Pandas中为每个唯一行值删除重复项?

来自分类Dev

如何从具有重复值的ArrayList <Object>中删除重复项

来自分类Dev

T-SQL 删除重复项,从另一个表中留下具有最大值的重复项

来自分类Dev

检查列表中的唯一值,然后增加重复项 c# Linq

来自分类Dev

在 Excel 中忽略重复项并创建以逗号分隔的唯一值列表

来自分类Dev

从具有特定键值的词典列表中删除元素

来自分类Dev

在Angular中显示具有重复出现次数的唯一项

来自分类Dev

JS - 加入具有重复项的数组中的唯一列

来自分类Dev

通过具有重复项的 gz 文件中的多个列数据计算唯一性

来自分类Dev

在PHP中,如何删除对象数组中的重复项,其中重复项定义为具有相同值的键值对的子集

Related 相关文章

  1. 1

    从词典列表中删除重复项(具有唯一值)

  2. 2

    从列表中删除唯一值,仅保留重复项

  3. 3

    从嵌套词典列表中删除重复项

  4. 4

    遍历对象/值列表,删除重复项,并在View(Python)中返回唯一值

  5. 5

    删除具有唯一索引的重复项

  6. 6

    如何在 PySpark 中通过具有唯一值的列值标记连续重复项?

  7. 7

    如何从向量中删除唯一值并保留重复项

  8. 8

    R枚举具有唯一值的数据框中的重复项

  9. 9

    列表中具有重复和位置的唯一对

  10. 10

    计算重复项中的唯一值

  11. 11

    过滤在某个键处具有重复值的词典列表

  12. 12

    从具有值列表的列中检索唯一值

  13. 13

    从具有多个属性的列表中删除重复值

  14. 14

    删除一列动态数据中具有重复项的行的重复项

  15. 15

    通过另一列中的唯一值删除重复项

  16. 16

    Excel:将所有单元格值从整个工作表复制到新工作表,进行排序并删除重复项,以形成唯一值列表

  17. 17

    返回唯一值而不删除重复项-C#

  18. 18

    返回唯一值而不删除重复项-C#

  19. 19

    在具有重复唯一值的Rstudio中查找重复值的频率

  20. 20

    如何在Pandas中为每个唯一行值删除重复项?

  21. 21

    如何从具有重复值的ArrayList <Object>中删除重复项

  22. 22

    T-SQL 删除重复项,从另一个表中留下具有最大值的重复项

  23. 23

    检查列表中的唯一值,然后增加重复项 c# Linq

  24. 24

    在 Excel 中忽略重复项并创建以逗号分隔的唯一值列表

  25. 25

    从具有特定键值的词典列表中删除元素

  26. 26

    在Angular中显示具有重复出现次数的唯一项

  27. 27

    JS - 加入具有重复项的数组中的唯一列

  28. 28

    通过具有重复项的 gz 文件中的多个列数据计算唯一性

  29. 29

    在PHP中,如何删除对象数组中的重复项,其中重复项定义为具有相同值的键值对的子集

热门标签

归档