2014-01-16 3 views
0

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

Код

lst = list(raw_input("Enter message: ")) 

Ввод данных пользователем

ABABABAB 

Выход

['A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'] 

Желаемая Выход

['AB', 'AB', 'AB', 'AB'] 
+0

Использовать 'raw_input (" Enter message: ") .split()'. На вашем выходе отсутствуют пробелы, хотя и странные. –

+0

Пользователь вводил 'ABABABAB', а затем пробелы для вывода, который вы показывали. –

+0

@AshwiniChaudhary: на выходе нет пробелов, поэтому на входе не было никаких пробелов. –

ответ

2

Вы можете использовать textwrap модуль для разделения вашей строки в одинакового размера кусков:

Использование образца ввода ABABABAB и разделение на группы по 2:

>>> import textwrap 
>>> lst = textwrap.wrap(raw_input("Enter message: "), 2) 
Enter message: ABABABAB 
>>> lst 
['AB', 'AB', 'AB', 'AB'] 

Используя образец я предложил с входом ABCABCABC и отрывов в группы 2:

>>> lst = textwrap.wrap(raw_input("Enter message: "), 2) 
Enter message: ABCABCABC 
>>> lst 
['AB', 'CA', 'BC', 'AB', 'C'] 

Обратите внимание, как лишняя буква все на своем собственном.

+0

Это сработало спасибо – user1902535

+0

Я не могу, пока не пройдет 5 минут, я буду. еще раз спасибо – user1902535

1

Использование списка понимание с range:

>>> user_input = 'ABABABABA' # user_input = raw_input("Enter message: ") 
>>> [user_input[i:i+2] for i in range(0, len(user_input), 2)] 
['AB', 'AB', 'AB', 'AB', 'A'] 
+0

Упс. Извините :) +1 Это работает :) Уборка комментариев – thefourtheye

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