web-dev-qa-db-fra.com

Python: Nombres aléatoires dans une liste

Créez une "liste" appelée my_randoms de 10 nombres aléatoires compris entre 0 et 100.

Voici ce que j'ai jusqu'à présent:

import random
my_randoms=[]
for i in range (10):
    my_randoms.append(random.randrange(1, 101, 1))
    print (my_randoms)

Malheureusement, la sortie de Python est la suivante:

[34]
[34, 30]
[34, 30, 75]
[34, 30, 75, 27]
[34, 30, 75, 27, 8]
[34, 30, 75, 27, 8, 58]
[34, 30, 75, 27, 8, 58, 10]
[34, 30, 75, 27, 8, 58, 10, 1]
[34, 30, 75, 27, 8, 58, 10, 1, 59]
[34, 30, 75, 27, 8, 58, 10, 1, 59, 25]

Il génère les 10 chiffres comme je le demande, mais il les génère un à la fois. Qu'est-ce que je fais mal?

47
Linda Leang

Vous pouvez utiliser random.sample pour générer la liste en un appel:

import random
my_randoms = random.sample(xrange(100), 10)

Cela génère des nombres compris entre 0 et 99. Si vous voulez 1 à 100, vous pouvez utiliser ceci (merci à @martineau pour avoir signalé ma solution compliquée):

my_randoms = random.sample(xrange(1, 101), 10)
76
robertklep
import random
my_randoms = [random.randrange(1, 101, 1) for _ in range(10)]
39
mattexx

Corrige l'indentation de l'instruction print

import random

my_randoms=[]
for i in range (10):
    my_randoms.append(random.randrange(1,101,1))

print (my_randoms)
17
karthikr

Ici, j’utilise la méthode sample pour générer 10 nombres aléatoires compris entre 0 et 100.

Remarque : J'utilise la fonction Python La fonction range de 3 (et non pas xrange ).

import random

print(random.sample(range(0, 100), 10))

La sortie est placée dans une liste :

[11, 72, 64, 65, 16, 94, 29, 79, 76, 27]
7
Stryker

C'est très tard, mais au cas où quelqu'un trouve cela utile.

Vous pouvez utiliser la compréhension de liste.

Rand = [random.randint(0, 100) for x in range(1, 11)]
print(Rand)

Sortie:

[974, 440, 305, 102, 822, 128, 205, 362, 948, 751]

À votre santé!

6
Ben Solien
import random

a=[]
n=int(input("Enter number of elements:"))

for j in range(n):
       a.append(random.randint(1,20))

print('Randomised list is: ',a)
1
perwaiz alam