【问题标题】:int object is not iterable?int 对象不可迭代?
【发布时间】:2014-11-19 06:35:34
【问题描述】:

我正在尝试创建一个程序,该程序将接受用户输入,该输入将是一串数字,并打印出每个数字出现的次数。但是,我收到一个 TypeError 说明 int 对象不可迭代?我将如何解决这个问题,为什么会这样?谢谢。

def main():
count = {}
user_input = input("Enter numbers separated by spaces: ")
for number in user_input.split():
    if number in count:
        count[number] = count[number] + 1
    else:
        count[number] = 1
print(count)

for k,v in count.values():
    if v == 1:
        print(k,"occurs one time")
    else:
        print(k,"occurs",v,"times")
main()

【问题讨论】:

    标签: string python-3.x dictionary


    【解决方案1】:

    替换:

    for k,v in count.values():
    

    与:

    for k,v in count.items():
    

    对于您的循环,您需要键 k 和值 vcount.values()只返回这些值。相比之下,count.items() 将返回两者。

    【讨论】:

      【解决方案2】:

      像这样检查每个键的值:

      for key in count:
          if count[key] == 1:
              print(key,"occurs one time")
          else:
              print(key,"occurs",count[key],"times")
      

      count.values() 方法仅在 dictionary 中返回 values 而不是 keyscount.items() 将返回您key value 对。

      【讨论】:

        猜你喜欢
        • 2013-08-02
        • 2012-06-21
        • 2017-09-11
        • 2015-04-14
        • 1970-01-01
        • 1970-01-01
        • 2022-07-01
        相关资源
        最近更新 更多