jgr*_*tty 2 python dictionary list-comprehension list
我有一个字典列表作为值,如下所示:
my_dict = {"a": [1, 6, 8, 4],
           "b": [2, 7, 4, 9, 13],
           "c": [9, 5, 6, 8, 11]
          }
我想要的是一个列表,其中包含字典列表中每个唯一项目之一.
所以,my_list应该是[1, 6, 8, 4, 2, 7, 9, 13, 5, 11].我不关心订单.
我是这样做的:
my_list = []
for k in my_dict:
    for item in my_dict[k]:
        if item not in my_list:
            my_list.append(item)
这有效,但我觉得有一个更优雅的解决方案,也许使用列表理解.
Mar*_*ers 12
使用集合 ; 你可以用以下方法生成所有值的并集:
set().union(*my_dict.values())
演示:
>>> my_dict = {"a": [1, 6, 8, 4],
...            "b": [2, 7, 4, 9, 13],
...            "c": [9, 5, 6, 8, 11]
...           }
>>> set().union(*my_dict.values())
set([1, 2, 4, 5, 6, 7, 8, 9, 11, 13])
集合没有顺序(就像字典键是无序的),但是你声明你不关心输出的顺序.