2016-09-26 194 views
0

我知道这很简单,但我正在为此付出努力。基本上我要添加的结果为一个dicionary内循环,所以我可以工作在另一个功能,这是我可以打印基于密钥值所需的字段的结果,将for循环的结果添加到字典中,然后追加到列表

实施例:

i = 0 
    b = 0 
    cc = [] 
    while True: 
     i += 1 
     b += 1 
     abc = {b: i} 
     cc.append(abc) 
     if i == 3: 
      break 

结果:[{1: 1}, {2: 2}, {3: 3}]

所以,预期的结果将是[{"1": 1, "2": 2, "3": 3}]

这是蟒蛇2.7

+0

是唯一的问题,结果是键是数字而不是字符串? –

+1

如果你只在列表中有一个字典,为什么要把一本字典放在列表中?为什么不用'cc'代替 –

+2

在附注中,你的'while'逻辑正在扰乱我......正如在下面的答案中,你可以使用'for'循环或者至少在你的条件中写入'while'循环:'而我<3:'。 :) – Daneel

回答

4

根据您的预期结果,我建议这样的:

cc = [] 
for i in range(0,3): 
    cc.append({str(i): i}) 

但请注意,您做获得在这个循环结束字典...你得到的是字典,每个列表字典仅包含一个键值对... [{'1':1},{'2':2}]{'1':1, '2':2}不一样,使用这样的字典列表可能会遇到问题。

所以我的猜测是你想要的东西沿着这一线路更多:

cc = dict() 
for i in range(0,3): 
    cc[str(i)] = i 

请告诉我,如果我误解了你的问题,或者您需要的解决方案的详细解释。

+0

你的第二个例子完美地工作,但如果我尝试迭代cc代码与K,V在cc我得到这个:http://paste.ofcode.org/huid6kccw59pFxtTCJsrna –

+2

@ThalesPereira使用这个'for k,v in cc .iteritems()' – Pavan

+0

@Pavan我设法进去,谢谢那个Pavan。现在我可以回家睡觉了。 –