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

random.choice(a) 

Wie kann ich ein zufälliges Wort wählen, und einen Brief herausziehen? Ich habe gesucht und experimentiert und was nicht, aber kann keine Antwort finden. danke.Erhalten Sie einen Buchstaben aus einem Wort

Ich möchte keinen zufälligen Buchstaben, für Instanzen Ich möchte, dass es ein Wort, Katze wählen. dann möchte ich jemanden raten entweder c a oder t. Art von wie Henker

+0

Do Sie möchten einen zufälligen Buchstaben oder einen festen Index ziehen? – alexn

+2

Bitte poste dein Experiment. –

+0

Was hält Sie davon ab, einen zufälligen Buchstaben aus der zufälligen Arbeit, die Sie ausgewählt haben, zu drucken? –

Antwort

5

Zuerst, um das Wort auszuwählen, verwenden Sie, was Sie veröffentlicht haben. Dann können Sie einen Satz von dem Wort machen, um die Menge der Buchstaben zu erhalten, die es enthält. Und Sie können damit prüfen, ob die Eingabe Teil des Wortes ist und die restlichen Buchstaben behalten. Sie tun können:

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!" 

Hoffe, dass es nützlich ist.

+1

Nur zu beachten, wenn die Strings nicht von der gleichen Länge sind, wird dies ein Zeichen nicht völlig zufällig auswählen (z. B. '[' a ',' 123456789 '] ') – marcog

+0

, aber es wird mit der gleichen Wahrscheinlichkeit ein Wort auswählen zuerst und dann die gleiche Wahrscheinlichkeit für jeden Buchstaben im Wort. Wenn Sie wollen, dass jeder Buchstabe (von allen Strings zusammen) die gleiche Wahrscheinlichkeit haben, dann sollten Sie Suhkbir Lösung tun. –

+0

Danke SanSS genau was ich gesucht habe. – Tarrant

6

Wenn Sie ein zufälliges Zeichen aus dem zufällig ausgewählten Wort wählen:

random.choice(random.choice(a)) 

Oder, wenn Sie wollen die ersten Buchstaben (zum Beispiel) des zufällig gewählten Wortes:

random.choice(a)[0] 
Verwandte Themen