2013-09-16 24 views
-5

Вот мой код:TypeError: объект 'int' не является итерируемым; Python 2.7

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 

Как я могу это исправить?

Спасибо.

+6

Какова ваша функция? – Vladimir

+6

'' int 'объект не итерируется' Он не может быть более явным, чем это. – JBernardo

ответ

5

num - целое число, а list() ожидает итерации, следовательно, ошибки. Вы хотите получить список целых чисел, представляющих цифры num? В этом случае вы можете попробовать использовать map():

l = map(int, string) 
1

Что вы пытаетесь сделать? Создайте список отдельных цифр или новый список с одним номером в нем.

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

или

l = [] 
l.append(int(string)) 
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

0

как указанный список arshajii должен иметь Iterable объекта , если вы хотите сделать список с не итерируемым объектом, и поэтому здесь есть список с целым числом как элемент, который вы должны создать список, подобный этому

def numbers_in_lists(string): 
    num = int(string) 
    l = list([num]) 
    #or 
    l = [num] 
    return l 
Смежные вопросы