Python: nombres aléatoires dans une liste

créer une' liste ' appelée my_randoms de 10 nombres aléatoires entre 0 et 100.

c'est 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 des 10 numéros que je demande, mais il génère un à la fois. Ce que je fais mal?

36
demandé sur Peter Mortensen 2013-05-20 21:40:10

6 réponses

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

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

qui génère des nombres dans la gamme (inclusive) de 0 à 99. Si vous voulez de 1 à 100, Vous pouvez utiliser ceci (merci à @martineau pour avoir pointé ma solution alambiquée):

my_randoms = random.sample(xrange(1, 101), 10)
62
répondu robertklep 2016-11-21 13:25:43
import random
my_randoms = [random.randrange(1, 101, 1) for _ in range(10)]
34
répondu mattexx 2018-07-15 02:23:06

fixez l'indentation de la print déclaration

import random

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

print (my_randoms)
14
répondu karthikr 2018-07-15 02:21:52

ici j'utilise le sample méthode pour générer 10 nombres aléatoires entre 0 et 100.

Remarque:: j'utilise Python 3 range fonction (pas xrange).

import random

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

la sortie est placée dans un liste:

[11, 72, 64, 65, 16, 94, 29, 79, 76, 27]
3
répondu Stryker 2018-08-21 19:53:00
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
répondu perwaiz alam 2017-08-03 04:40:37
my_randoms = [randint(n1,n2) for x in range(listsize)]
-3
répondu someguy 2017-08-04 14:22:17