将字典分成较小的字典

时间:2016-11-06 19:37:06

标签: python python-3.x dictionary

我有一本字典,想把它分成更小的字典,例如:

dic = {1:(2,6), 3:(4,5)}

我想循环它,并且有一个"当前"第一次迭代的字典current = {1:2, 3:4},第二次迭代的当前{1:6, 3:5}。这是我尝试过的(并且不起作用):

dic = {1:(2,6), 3:(4,5)}

for i in range (0,1):
    for key in dic:
        current = {}
        current[key] = dic[key][i]
    print (current)

这会输出{3:4}{3:5},它会跳过键#34; 1"由于某些原因。我该如何解决这个问题?

另外,假设每个键的值都相等,我如何找到键的值的数量?例如对于{2:[3,4,5,7], 3:[1,0,3,1]}来说将是4。

2 个答案:

答案 0 :(得分:4)

您在每次迭代时覆盖range(0, 1),在迭代之前定义它,并且dic = {1:(2,6), 3:(4,5)} for i in range(2): current = {} for key in dic: current[key] = dic[key][i] print(current) 仅循环遍历[0]:

LSApplicationQueriesSchemes

答案 1 :(得分:3)

或者,您可以创建新词典,遍历原始词典的键并相应地创建词典:

dic = {1:(2,6), 3:(4,5)}
d1, d2 = {}, {}
for key, v in dic.items():
    d1[key], d2[key] = v 
print(d1, d2)

打印出来:

{1: 2, 3: 4} {1: 6, 3: 5}

d1[key], d2[key] = v只需在vd1[key]中解压缩d2[key]的值。