2011-01-10 5 views
0
a = ['cat','dog'] 

random.choice(a) 

Как выбрать случайное слово и вытащить письмо? Я искал и экспериментировал, а еще ничего не мог найти ответа. спасибо.Получить письмо от

Я не хочу случайного письма, для экземпляров Я хочу, чтобы он выбрал слово, кот. , тогда я хочу, чтобы кто-то угадал либо c a, либо t. Вид как палач

+0

Do вы хотите получить случайную букву или фиксированный индекс? – alexn

+2

Пожалуйста, разместите свой эксперимент. –

+0

Что мешает вам печатать случайную букву из выбранной вами случайной работы? –

ответ

5

Прежде всего, чтобы выбрать слово, вы используете то, что вы опубликовали. Затем вы можете сделать набор из слова, чтобы получить набор букв, который он содержит. И вы можете использовать его, чтобы проверить, является ли вход частью слова и сохранит остальные буквы. Вы можете сделать:

chosen_word = random.choice(['cat', 'dog']) 
letters_set = set(chosen_word) 
while len(letters_set) > 0: 
    letter = raw_input() #make controls on this. 
    if letter in letters_set: 
     letters_set.remove(letter) 
     print "Good!" 
     print ''.join(map(lambda c: c in letters_set and '_' or c, chosen_word)) 
    else: 
     print "Bad Bad, try again!" 

Надеется, что это полезно.

+1

Просто заметим, что если строки не имеют одинаковой длины, это не приведет к случайному выбору символа (например, рассмотрим '['a', '123456789']') – marcog

+0

, но он будет выбирать с той же вероятностью слово сначала, а затем той же вероятности для каждой буквы в слове. Если вы хотите, чтобы каждая буква (из всех строк вместе) имела такую ​​же вероятность, вы должны сделать решение сухбира. –

+0

Спасибо SanSS, что именно я искал. – Tarrant

6

Если вы хотите, чтобы выбрать случайный характер из произвольно выбранного слова:

random.choice(random.choice(a)) 

Или, если вы хотите, первую букву (например) из случайно выбранного слова:

random.choice(a)[0] 
Смежные вопросы