2015-08-26 2 views
0

Я хочу, чтобы пользователь вводил список с объектом в каждую новую строку. Пользователь будет копировать и пропускать весь список в программу, а не каждый раз вводить новый объект.Получить список (объект в новой строке) и распечатать список в одной строке

Например, здесь пользователи вход:

января
февраля
марта
апреля
может
июня

и он получает список так же, как это:

('january','february','march','april','may','june') 

У кого-то есть идея для кода python, который может мне помочь?

+0

Вы должны показать свой, что вы пробовали раньше попросить, чтобы получить решение ваша проблема – EnriMR

+0

Получил ответ готов, что вы сделали до того, как я его опубликовал? – muddyfish

+0

Дело в том, что я использую pycharm, и я не могу даже ввести список с объектом в новую строку, используя raw | _input – sharon

ответ

0

Попробуйте

sentinel = '' 
print list(iter(raw_input, sentinel)) 

Выполнить программу, скопируйте вставить ваш вертикальный string.You получит

['january','february','march','april','may','june'] 
+0

Он отлично работает! Спасибо! – sharon

+0

Можете ли вы подробнее объяснить функцию iter()? – sharon

+0

Посмотрите на этом https://docs.python.org/2/library/functions.html#iter – itzMEonTV

0

splitlines() возвращает list со всеми строками в строке.

>>> str = '''january 
... february 
... march 
... april 
... may 
... june'''  
>>> str.splitlines() # returns a list 
['january', 'february', 'march', 'april', 'may', 'june'] 
>>> tuple(str.splitlines()) # you can convert to tuple like this 
('january', 'february', 'march', 'april', 'may', 'june') 
0

Очень простой метод, до тех пор, пока пользователь не наберет новую линию.

def get_list(prompt=""): 
    output=[] 
    inp = "" 
    while inp != "\n": 
     output.append(inp) 
     inp = raw_input(prompt) 
    output=output[1:] 
    return output 
Смежные вопросы