我有一本字典,想把它分成更小的字典,例如:
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。
答案 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
只需在v
和d1[key]
中解压缩d2[key]
的值。