获取字典中的所有键和值,将它们放在列表中 - python

时间:2013-10-04 08:18:55

标签: python arrays dictionary key

我得到了一个充满键和值的字典:

1:0, 2:3 ,3:0: ,4:3 

键一直到500 ++,但值通常是0到15.如你所见,键通常具有相同的值。

我想为每个值创建一个数组或列表或最佳,因此对于0-15,将有16个数组,然后取出所有键并将它们放在正确的数组中。

所以在示例中它将是:

array 0 [1,3]
array 3 [2,4]

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

这样的事情:

vals = [[] for _ in range(16)]
for k, v in my_dict.values():
    vals[v].append(k)

答案 1 :(得分:0)

d = {1:0, 2:3 ,3:0, 4:3}
lists = [[k for k,v in d.items() if v == x] for x in sorted(set(d.values()))]
print lists

输出:

[[1, 3], [2, 4]]

答案 2 :(得分:0)

a={i:[] for i in range(16)}
for k,v in mydict:
   a[k].append(v)

答案 3 :(得分:0)

你想要一本字典?喜欢这个?

b = {1:0, 2:3 ,3:0 ,4:3}
a = dict.fromkeys(b.values(), None)
for key, value in b:
    if a[value] is None:
        a[value] = []
    a[value].append(key)

这将生成输出为:     打印一个     {0:[1,3],3:[2,4]}

请注意,如果字典b更大(甚至超过16个项目),最好将其初始化为

a = dict.fromkeys(range(1, 16), None)

而不是之前提到的。