【问题标题】:TypeError: 'int' object is not iterable; Python 2.7TypeError:“int”对象不可迭代;蟒蛇 2.7
【发布时间】:2013-09-16 14:10:53
【问题描述】:

这是我的代码:

def numbers_in_lists(string):
    num = int(string)
    l = list(num)
    return l

string = '543987'

当我运行它时:

print numbers_in_lists(string)

我有以下错误:

l = list(num)
TypeError: 'int' object is not iterable

我该如何解决这个问题?

谢谢。

【问题讨论】:

  • 你的函数应该做什么?
  • 'int' object is not iterable 再明确不过了。

标签: python python-2.7


【解决方案1】:

num 是一个整数,list() 需要一个可迭代对象,因此会出现错误。您想获得代表num 的数字的整数列表吗?如果是这样,您可以尝试使用map()

l = map(int, string)

【讨论】:

    【解决方案2】:

    你想做什么?创建单个数字的列表或包含单个数字的新列表。

    l = [int(n) for n in string]
    

    l = []
    l.append(int(string)) 
    

    【讨论】:

      【解决方案3】:
      def numbers_in_lists(string):
          numbers = []
          for char in string:
              try:
                  num = int(char)
                  numbers.append(num)
              except:
                  print 'Could not convert to number'
          return numbers
      
      numString = '543987'
      listOfNumbers = numbers_in_list(numString)
      

      如果字符无法转换为 int,这里是带有异常处理的代码

      【讨论】:

        【解决方案4】:

        就像说的 arshajii 列表必须有一个可迭代的对象 如果你想用不可迭代的对象创建一个列表,所以这里有一个以整数作为元素的列表,你必须像这样创建列表

        def numbers_in_lists(string):
            num = int(string)
            l = list([num])
            #or 
            l = [num]
            return l
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-09-11
          • 1970-01-01
          • 2023-01-22
          • 2018-09-29
          • 2020-02-26
          • 2015-04-06
          • 2013-10-31
          相关资源
          最近更新 更多