我得到了一个充满键和值的字典,如下所示:
1:0, 2:3 ,3:0: ,4:3
键一直到 500++ ,但值通常在 0 到 15 之间。如您所见,键通常具有相同的值。
我想为每个值创建一个数组或列表或最好的,因此对于 0-15 将有 16 个数组,然后取出所有键并将它们放入正确的数组中。
所以在这个例子中它将是:
array 0 [1,3]
array 3 [2,4]
有任何想法吗?
我得到了一个充满键和值的字典,如下所示:
1:0, 2:3 ,3:0: ,4:3
键一直到 500++ ,但值通常在 0 到 15 之间。如您所见,键通常具有相同的值。
我想为每个值创建一个数组或列表或最好的,因此对于 0-15 将有 16 个数组,然后取出所有键并将它们放入正确的数组中。
所以在这个例子中它将是:
array 0 [1,3]
array 3 [2,4]
有任何想法吗?
像这样的东西:
vals = [[] for _ in range(16)]
for k, v in my_dict.values():
vals[v].append(k)
a={i:[] for i in range(16)}
for k,v in mydict:
a[k].append(v)
你想要一本字典吗?像这样?
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)
这将生成输出为: print a {0:[1,3], 3:[2,4]}
请注意,如果字典 b 更大(甚至超过 16 个项目),最好不要将其初始化为
a = dict.fromkeys(range(1, 16), None)
而不是前面提到的。
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]]