2017-03-24 1 views
0

Disons que j'ai une boucle qui génère des noms aléatoiresComment combiner une sortie de boucle avec une autre pour une sortie de boucle?

names = ['Kiri', 'Elizabeth', 'Philip', 'Charlotte', 'Lydia'] 

random_names = [] 
for x in range(3): 
    random_names.append(random.choice(names)) 
print (random_names) 

-Ce imprimerait sur 3 noms par exemple au hasard [ « Charlotte », « Lydia », « Kiri »]

Je veux générer nombres aléatoires, disons 1 à disons de 20

random_numbers = random.sample([x for x in range (1,20)], (3)) 
print (random_numbers) 

Et permet de dire que nous avons eu [7, 13, 2]

Alors ma question est, je veux attribuer ces numbe au hasard rs à suivre les noms aléatoires afin qu'ils soient associés au nom. Comment dois-je écrire le code d'une manière qu'il ne peut donc apparaître comme

('Charlotte', 7), ('Lydia', 13), ('Kiri', 2)

Merci à l'avance !

+0

Il suffit d'utiliser ['zip'] (https://docs.python.org/3.6/library/functions.html?highlight=zip#zip) pour combiner les deux listes' zip (random_names, random_numers) ' – AChampion

Répondre

1

Il y a plusieurs façons de le faire, vous pouvez utiliser zip regarder ce petit exemple:

names = ['Kiri', 'Elizabeth', 'Philip', 'Charlotte', 'Lydia'] 
random_numbers = random.sample([x for x in range (1,20)], (3)) 
zip(names,random_numbers) 

sortie

[('Kiri', 19), ('Elizabeth', 3) ('Philip', 1)]

La sortie ci-dessus est un list of tuples

+0

Le problème est que je J'utilise python 3, donc il semble que je ne peux pas utiliser cela comme une erreur se produit -

+1

D'accord, j'ai découvert que pour python 3, je dois ajouter la liste infront. So list (zip (noms, random_numbers)). Merci –