-6

这是我的代码:

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

我怎样才能解决这个问题?

谢谢。

4

4 回答 4

4

num是一个整数,并且list()期望一个可迭代的,因此错误。你想获得一个代表数字的整数列表num吗?如果是这样,您可以尝试使用map()

l = map(int, string)
于 2013-09-16T14:13:03.877 回答
1
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

于 2013-09-16T14:17:21.720 回答
1

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

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

或者

l = []
l.append(int(string)) 
于 2013-09-16T14:14:59.493 回答
0

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

def numbers_in_lists(string):
    num = int(string)
    l = list([num])
    #or 
    l = [num]
    return l
于 2013-09-16T14:19:48.327 回答