2
votes

Comment analyser un résultat et l'insérer dans une variable?

J'essaie actuellement de créer un jeu du pendu, dans lequel vous pouvez choisir le nombre de lettres dans un mot.

hLetters = int(input("How many letters? (4-16)\n"))

  def word(letters):
    if letters == 4:
      random.choice(list4)
    if letters == 5:
      random.choice(list5)
    # etc, etc

word(hLetters)

De toute évidence, c'est inefficace - existe-t-il une méthode pour obtenir le valeur des hLetters à placer après "list", pour qu'il choisisse automatiquement "list4" lorsque l'entrée est 4, ou "list8" lorsque l'entrée est 8?


0 commentaires

3 Réponses :


7
votes

Vous pouvez placer toutes vos listes dans un dictionnaire -

random.choice(words_lists[letters])

Et choisir au hasard parmi ces valeurs de dict -

words_lists = {4 : list4, 5: list5}


1 commentaires

Une liste serait légèrement plus efficace à la fois en termes de stockage et de vitesse d'accès. [* ((None,) * 4), list4, list5, ...] vous permet d'utiliser words_list [lettres] sans soustraction, mais [list4, list5, ...] fonctionnerait bien aussi à condition que vous soustrayiez 4 de lettres pour en faire un index valide.



0
votes

C'est une liste de listes. Tout comme vous avez une liste pour plusieurs lettres, au lieu de les référencer comme lettre1, lettre2, faites une liste de vos listes multiples

random.choice(outer_list[letter - 1])

puis

 outer_list = [list1, list2, ...]


1 commentaires

Pensez que vous manquez une partie du deuxième bloc. random.choice (external_list [letter-1]) , à part ça une bonne solution :)



5
votes

Vous pouvez utiliser une liste de liste pour ce

letter = 4 
listoflist=[list4,list5,list6,..list16]
print(random.choice(listoflist[letter-4]))


0 commentaires