Python-唯一字典的列表,其中每个字典值都是一个列表

amaatouq

假设我有一个这样的词典列表:

[
 {'101': ['A','B'],
  '102': ['C'],
  '103': ['D'],
  '104': [],
  '105': [],
  'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']},
 {'101': ['A'],
  '102': ['C'],
  '103': ['B'],
  '104': ['D'],
  '105': ['E'],
  'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']},
{'101': ['A','B'],
  '102': ['C'],
  '103': ['D'],
  '104': [],
  '105': [],
  'deck': ['E','F', 'G', 'H', 'I', 'J', 'K', 'L']}
]

并且我需要获取唯一字典的列表(删除重复项):

[
 {'101': ['A','B'],
  '102': ['C'],
  '103': ['D'],
  '104': [],
  '105': [],
  'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']},
 {'101': ['A'],
  '102': ['C'],
  '103': ['B'],
  '104': ['D'],
  '105': ['E'],
  'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']}
]

我试过了

unique_solutions = list(set(val for dic in full_solutions_list for val in dic.values())) 

但是字典值的“列表”类型是不可散列的。

什么是有效的方法?(词典的数量相对较大)。

awarrier99

您可以dict在唯一项中添加一个list如果尚未包含)(请注意,我假设您是要使第三项'E'在其deck列表中包含,否则将不会重复):

x = [
 {'101': ['A','B'],
  '102': ['C'],
  '103': ['D'],
  '104': [],
  '105': [],
  'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']},
 {'101': ['A'],
  '102': ['C'],
  '103': ['B'],
  '104': ['D'],
  '105': ['E'],
  'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']},
{'101': ['A','B'],
  '102': ['C'],
  '103': ['D'],
  '104': [],
  '105': [],
  'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']}
]

unique_solutions = []
for d in x:
    if d not in unique_solutions:
        unique_solutions.append(d)

或者,您可以创建类似一个HashDict实现哈希类(在我的示例中,使用元组,但这可以通过不同的方式完成),然后创建一个set

class HashDict(dict):
    def __init__(self, d):
        for k, v in d.items():
            self[k] = v

    def __hash__(self):
        return hash(tuple((k, tuple(v)) for k, v in self.items()))

hdx = [HashDict(d) for d in x]
unique_solutions = list(set(hdx))

这两个例子都导致

>>> print(unique_solutions)
[{'101': ['A', 'B'], '102': ['C'], '103': ['D'], '104': [], '105': [], 'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']}, {'101': ['A'], '102': ['C'], '103': ['B'], '104': ['D'], '105': ['E'], 'deck': ['E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']}]

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否有Python方式将一个字典的浮点值添加到另一字典的值列表中?

来自分类Dev

Python3:将一个字典中每个键的多个值除以另一字典中每个键的多个值

来自分类Dev

python-如何从字典列表中确定找到的两个键是否属于同一字典

来自分类Dev

python-如何从字典列表中确定找到的两个键是否属于同一字典

来自分类Dev

Python从键列表和值列表构建一个字典

来自分类Dev

python:检查一个键中的一定数量的字符是否与同一字典中的另一个键匹配

来自分类Dev

Python 为 DataFrame 中的每个组创建一个字典列表

来自分类Dev

Python将字典列表转换为另一个字典列表

来自分类Dev

Python将字典列表转换为另一个字典列表

来自分类Dev

如何从另一个 python 字典中获取一个字典中的相应列表值,其中它们被列为键,比较并打印出一个 csv?

来自分类Dev

python3字典,值作为列表

来自分类Dev

Python 参考字典键在同一字典中

来自分类Dev

python-将键的值替换为与同一字典中的不同键对应的值

来自分类Dev

如何将Python中的数据列表转换为字典,其中每个项目都有一个键

来自分类Dev

python数据结构:字典到一个字典的列表

来自分类Dev

将包含列表的字典追加到python中的另一个字典

来自分类Dev

当每个字典的一个条目本身就是一个数组时,从词典列表中创建一个python pandas数据框

来自分类Dev

我有一个字典列表,我想获取Python中每个字典中存在的相同元素

来自分类Dev

给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

来自分类Dev

给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

来自分类Dev

如何制作一个字典,其中多个值访问一个值(Python)

来自分类Dev

如何比较两个字典值列表,并在 Python3 中更改另一个列表值时更新列表值?

来自分类Dev

初始化一个字典,其中每个项目都是一个空的唯一列表的列表

来自分类Dev

python字典一个元素作为键,一个列表作为值

来自分类Dev

如何使python使用字符串字母的顺序作为字典的一部分,以及每个唯一字母出现的次数的值

来自分类Dev

2个字典列表之间的python差异由一个键

来自分类Dev

将两个列表合并成一个字典Python

来自分类Dev

如何使唯一的Python嵌套字典列表

来自分类Dev

python-多维列表并创建一个字典并计算其平均值

Related 相关文章

  1. 1

    是否有Python方式将一个字典的浮点值添加到另一字典的值列表中?

  2. 2

    Python3:将一个字典中每个键的多个值除以另一字典中每个键的多个值

  3. 3

    python-如何从字典列表中确定找到的两个键是否属于同一字典

  4. 4

    python-如何从字典列表中确定找到的两个键是否属于同一字典

  5. 5

    Python从键列表和值列表构建一个字典

  6. 6

    python:检查一个键中的一定数量的字符是否与同一字典中的另一个键匹配

  7. 7

    Python 为 DataFrame 中的每个组创建一个字典列表

  8. 8

    Python将字典列表转换为另一个字典列表

  9. 9

    Python将字典列表转换为另一个字典列表

  10. 10

    如何从另一个 python 字典中获取一个字典中的相应列表值,其中它们被列为键,比较并打印出一个 csv?

  11. 11

    python3字典,值作为列表

  12. 12

    Python 参考字典键在同一字典中

  13. 13

    python-将键的值替换为与同一字典中的不同键对应的值

  14. 14

    如何将Python中的数据列表转换为字典,其中每个项目都有一个键

  15. 15

    python数据结构:字典到一个字典的列表

  16. 16

    将包含列表的字典追加到python中的另一个字典

  17. 17

    当每个字典的一个条目本身就是一个数组时,从词典列表中创建一个python pandas数据框

  18. 18

    我有一个字典列表,我想获取Python中每个字典中存在的相同元素

  19. 19

    给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

  20. 20

    给定一个字典,其中值可能是不同的类型,如何将python字典简洁地转换为元组列表?

  21. 21

    如何制作一个字典,其中多个值访问一个值(Python)

  22. 22

    如何比较两个字典值列表,并在 Python3 中更改另一个列表值时更新列表值?

  23. 23

    初始化一个字典,其中每个项目都是一个空的唯一列表的列表

  24. 24

    python字典一个元素作为键,一个列表作为值

  25. 25

    如何使python使用字符串字母的顺序作为字典的一部分,以及每个唯一字母出现的次数的值

  26. 26

    2个字典列表之间的python差异由一个键

  27. 27

    将两个列表合并成一个字典Python

  28. 28

    如何使唯一的Python嵌套字典列表

  29. 29

    python-多维列表并创建一个字典并计算其平均值

热门标签

归档