2015-10-07 5 views
-2

Есть ли способ добавить все номера ввода в список?Запрос списка на вход?

Я имею в виду, как это:

input = ("Type in a list of numbers") e.g [2,-3,5,6,-1] 

, а затем сделать все эти цифры в списке?

Я думал, что, может быть, как это, но он не работает,

input = ("Type in a list of numbers") 
ls = [] 

ls.append(input) 
+0

Можете ли вы дать пример ввода? Разделяются ли они пробелами или запятыми, начинаются ли они и заканчиваются на '[', ']', например. '1 2 3', или' 1, 2, 3', или '[1, 2, 3]' –

+0

Какую версию python вы используете? 2.7 попытается преобразовать ввод в тип. –

+1

@PeterWood В коде OP нет 'input()') – Psytho

ответ

1

Вы можете ввести список номеров, как это в Python 2:

list_of_numbers = [input('Number 1:'), input('Number 2:'), input('Number 3:')] 
0

Вы можете использовать ast.literal_eval для разбора список номеров, введенное пользователем:

import ast 

numbers = input('Type in a list of numbers, separated by comma:\n') 

lst = list(ast.literal_eval(numbers))) 

print('You entered the following list of numbers:') 
print(lst) 
Type in a list of numbers, separated by comma: 
1, 523, 235235, 34645, 56756, 21124, 346346, 658568, 123123, 345, 2 
You entered the following list of numbers: 
[1, 523, 235235, 34645, 56756, 21124, 346346, 658568, 123123, 345, 2] 

Обратите внимание, что с Python 2 вам необходимо использовать raw_input() вместо input().

+2

Это работает, потому что значения, разделенные запятыми, оцениваются как кортеж, который «list» затем преобразуется в список. –

2

Python 2.7 будет просто работать:

>>> input() # [1, 2, 3] 
[1, 2, 3] 

>>> type(_) 
list 

Python 3:

>>> import ast 
>>> ast.literal_eval(input()) # [1, 2, 3] 
[1, 2, 3] 
Смежные вопросы