【问题标题】:Loaded a dictionary with integer key how do I print it out?用整数键加载字典如何打印出来?
【发布时间】:2014-05-20 18:50:41
【问题描述】:

在 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 循环

for i in dicthg:

只得到最后一项(索引 9)

同样的时候

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

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

【问题讨论】:

  • 在进入第二个循环之前尝试打印dicthg

标签: python dictionary int


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这是制作一个每次只有 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}
    

    【讨论】:

      【解决方案3】:
      p=100 
      dicthg = {i:p for i in range(10)} 
      

      另一种使用字典推导式创建字典的方法。

      【讨论】:

        【解决方案4】:

        要让您的代码正常工作,只需替换:

        dicthg = {i:p}
        

        dicthg.update({i:p})
        

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

        print dicthg
        

        这会告诉你为什么KeyError 在第二个循环中。

        【讨论】:

          【解决方案5】:

          这是您的程序的修改版本:

          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了

          希望这会有所帮助!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-01-12
            • 2020-07-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-03-02
            相关资源
            最近更新 更多