2015-09-19 6 views
-4

Я беру входные данные из стандартного входного потока следующим образом:Ввод следующей строки чисел, разделенных в списке

1 
2 
3 
4 
5 
6 

Я хочу взять всю строку разделенных ввод в списке и распечатать его как

['1','2','3','4','5','6']. 
+0

так что вы хотите вызывать '' input() '' шесть раз? и что означает ** Я хочу, чтобы это в списке или как строка ** означало? –

+0

вместо вызова 'input()' шесть раз, есть ли у нас какой-либо другой метод для этого. –

ответ

-1

Для строки:

My_String = "" 
a = input() 
while a != "": 
    My_String += a 
    a = input() 
return My_String 

Для списка

My_List = [] 
a = input() 
while a != "": 
    My_List.append(a) 
    a = input() 
return My_List 
0

использование sys.stdin.read() для ввода Multi-линии:

import sys 
data = sys.stdin.read() 
data_list = data.strip().split('\n') 
+0

Что нужно, если вы используете переменные для отдельных лиц? –

+0

@AhsanulHaque использовать переменные для отдельных лиц? Что вы имеете в виду? –

+0

переменные для индивидуального ввода? Разве не смешно, что сначала вы определяете связку переменной, а затем печатаете ее, формируя список. Кроме того, это не обобщенное решение. –

0

И я сделал то же самое, как показано ниже:

import sys 
arr = sys.stdin.read() 
list = data.splitlines() 
+0

См. Встроенный метод [str.splitlines] (https://docs.python.org/3/library/stdtypes.html#str.splitlines). –

0

Если вы хотите фиксированное число входных данных, сделать это в течение петля.

lst=[] 
for i in range(6): 
    lst.append(input()) 

print lst 

Чтобы запустить процесс навсегда до KeyboardInterrupt, вы можете сделать это:

lst=[] 
while True: 
    lst.append(input()) 
    print lst 

Вы также можете использовать signal, если хотите сделать что-то после ctl + c

import signal 
import sys 
def signal_handler(signal, frame): 
    print lst 
    sys.exit(0) 
signal.signal(signal.SIGINT, signal_handler) 

lst=[] 
while(True): 
    lst.append(input()) 

Если вы хотите ввести до определенного символа, например space ввод:

lst=[] 
while True: 
    demo = raw_input() 
    if demo==" ": 
     break 
    lst.append(demo) 

print lst 
+0

Нет, длина ввода неизвестна –

+0

ОК, обновление в ближайшее время. –

+0

@AthulRaj, когда будет вводить конец? прерывание клавиатуры? –

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