我得到了一个充满键和值的字典:
1:0, 2:3 ,3:0: ,4:3
键一直到500 ++,但值通常是0到15.如你所见,键通常具有相同的值。
我想为每个值创建一个数组或列表或最佳,因此对于0-15,将有16个数组,然后取出所有键并将它们放在正确的数组中。
所以在示例中它将是:
array 0 [1,3]
array 3 [2,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)
而不是之前提到的。