用整数键加载字典如何打印出来?

时间:2014-05-20 18:50:41

标签: python dictionary int

在Python 27中

p=100
dicthg = {}

for i in range(10):
    print i
    dicthg = {i:p};

for i in range(10):
    print "-", i
    print dicthg[i]

关键错误 注释第二个for循环,它打印dicthg [i]罚款。

尝试第二次循环

for i in dicthg:

仅获得最后一项(索引9)

同样

for i,j in dicthg.items():
     print i,j

我是Python的新手,所以我提前为我的无知道歉。我对以前的帖子进行了广泛的搜索。

5 个答案:

答案 0 :(得分:0)

您没有加载它。您将在循环的每次迭代中替换整个字典。以下是加载的方式。

for i in range(10):
    print i
    dicthg[i] = p

答案 1 :(得分:0)

这是一个每次只有1个元素的新词典

for i in range(10):
    print i
    dicthg = {i:p}

目前,dicthg具有以下值

{9: 100}

我认为您的意图如下

for i in range(10):
    print i
    dicthg[i] = p

现在看一下字典

{0: 100, 1: 100, 2: 100, 3: 100, 4: 100, 5: 100, 6: 100, 7: 100, 8: 100, 9: 100}

答案 2 :(得分:0)

p=100 
dicthg = {i:p for i in range(10)} 

使用字典理解创建字典的另一种方法。

答案 3 :(得分:0)

要使代码正常工作,请更换:

dicthg = {i:p}

dicthg.update({i:p})

如果您想要一种简单的方法来了解发生了什么,请将此行添加到第一个循环中:

print dicthg

这将显示第二个循环中KeyError的原因。

答案 4 :(得分:0)

以下是您的计划的修改版本:

p=100
dicthg = {}

for i in range(10):
    print i
    # This is correct/simple way of setting item in dictionary
    dicthg[i] = p

print "value of i = " + str(i)

print "Setting i to 0 again"
i = 0

print "new value of i = " + str(i)

for i in range(10):
    print "-", i
    print dicthg[i]

所以我做了两处修改:

  1. 在词典中插入/添加项目
  2. 将i的值重置为0,以便我们可以从0迭代到10
  3. 希望这有帮助!