2015-10-22 4 views
2

(Это домашнее задание) Вот что у меня есть:AttributeError: объект 'tuple' не имеет атрибута 'split' с результатом ввода()?

L1 = list(map(int, input().split(","))) 

Я бегу в

File "lab3.py", line 23, in <module> 
    L1 = list(map(int, input().split(","))) 
AttributeError: 'tuple' object has no attribute 'split' 

что вызывает эту ошибку?

Я использую 1, 2, 3, 4 в качестве входных данных

+0

что делать ввод для 'input()'? он читает его как кортеж, а не список. –

+0

@RNar: 'input' является встроенным. – user2357112

+3

Если это python2, используйте 'raw_input' вместо ввода. Перед публикацией, пожалуйста, нарушите проблему. Какая самая маленькая программа вы можете написать, которая все еще демонстрирует вашу проблему? –

ответ

5

Я собираюсь рискну предположить, что это Python 2 на основе или ваша ошибка. В этом случае вам нужно использовать raw_input вместо input

raw_input().split(",") 

В Python 2, функция input() попытается eval независимо пользователь вводит, эквивалент eval(raw_input()). Когда вы вводите список значений, разделенных запятыми, он оценивается как кортеж. Ваш код затем вызывает split на этом кортеже:

>>> input().split(',') 
1,2 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'tuple' object has no attribute 'split' 

Если вы хотите з, что это на самом деле кортеж:

>>> v = input() 
1,3,9 
>>> v[0] 
1 
>>> v 
(1, 3, 9) 

Наконец, вместо list и map вы бы лучше со списком понимание

L1 = [int(i) for i in raw_input().split(',')] 
+0

благодарит за помощь, очень ценю –

Смежные вопросы