-3

我得到了一个充满键和值的字典,如下所示:

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

键一直到 500++ ,但值通常在 0 到 15 之间。如您所见,键通常具有相同的值。

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

所以在这个例子中它将是:

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

有任何想法吗?

4

4 回答 4

2

像这样的东西:

vals = [[] for _ in range(16)]
for k, v in my_dict.values():
    vals[v].append(k)
于 2013-10-04T08:22:45.910 回答
0
a={i:[] for i in range(16)}
for k,v in mydict:
   a[k].append(v)
于 2013-10-04T08:25:58.500 回答
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)

这将生成输出为: print a {0:[1,3], 3:[2,4]}

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

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

而不是前面提到的。

于 2014-11-04T13:44:43.030 回答
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]]
于 2013-10-04T08:24:46.343 回答