2015-04-16 4 views
3

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

list = ['word1', 'hint1', 'word2', 'hint2','word3', 'hint3','word4', 'hint4','word5', 'hint5'] 

Мне нужно создать два отдельных списка, содержащих только секретные слова и подсказки. Как мне это сделать?

желаемый результат:

words = ['word1','word2','word3','word4','word5'] 
hints = ['hint1','hint2','hint3','hint4','hint5'] 

ответ

5

Используйте нарезка и шаг обозначения для генерации двух списков, l[::2] будет шаг 2 элементов, начиная с первого элемента в то время как l[1::2] будет также шаг 2 элементов, но, начиная с 2-го элемента:

In [145]: 

l = ['word1', 'hint1', 'word2', 'hint2','word3', 'hint3','word4', 'hint4','word5', 'hint5'] 
words = l[::2] 
hints = l[1::2] 
print(words) 
print(hints) 
['word1', 'word2', 'word3', 'word4', 'word5'] 
['hint1', 'hint2', 'hint3', 'hint4', 'hint5'] 

docs объяснить подробнее об этом

+0

я не знаю ломтика может иметь 4 вещи в них. Я думал, что это только начало и шаг. – Ogen

+0

Был в python начиная с версии 2.3: https://docs.python.org/2.3/whatsnew/section-slices.html – EdChum

+0

@Ogen: у них нет четырех вещей, у всех их есть три. 'l [1 :: 2]' is 'l [start: (end): step]' с 'start = 1',' end = None' и 'step = 2'. – DSM

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