Python: números aleatorios en una lista

Cree una ‘lista’ llamada my_randoms de 10 números aleatorios entre 0 y 100.

Esto es lo que tengo hasta ahora:

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

Desafortunadamente la salida de Python es esta:

 [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] 

Genera los 10 números como le pido, pero los genera uno por uno. ¿Qué estoy haciendo mal?

Podría usar random.sample para generar la lista con una llamada:

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

Eso genera números en el rango (incluido) de 0 a 99. Si quieres de 1 a 100, puedes usar esto (gracias a @martineau por señalar mi solución compleja):

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

Corregir la sangría de la statement de print

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

Aquí utilizo el método de sample para generar 10 números aleatorios entre 0 y 100.

Nota : Estoy usando la función de range Python 3 (no xrange ).

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

La salida se coloca en una lista :

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

Esto es demasiado tarde, pero en caso de que alguien lo encuentre útil.

Podrías usar la lista de comprensión.

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

Salida:

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

¡Aclamaciones!

 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) 
 my_randoms = [randint(n1,n2) for x in range(listsize)]