Подтвердить что ты не робот

Python: случайные числа в списке

Создайте "список" под названием my_randoms из 10 случайных чисел в диапазоне от 0 до 100.

Это то, что я до сих пор:

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

К сожалению, вывод Python таков:

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

Он генерирует 10 чисел, как я и просил, но генерирует их по одному. Что я делаю неправильно?

4b9b3361

Ответ 1

Вы можете использовать random.sample для создания списка одним вызовом:

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

Это генерирует числа в диапазоне (включительно) от 0 до 99. Если вы хотите от 1 до 100, вы можете использовать это (спасибо @martineau за то, что указали мое запутанное решение):

my_randoms = random.sample(xrange(1, 101), 10)

Ответ 2

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

Ответ 3

Исправить print инструкции print

import random

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

print (my_randoms)

Ответ 4

Здесь я использую метод sample для генерации 10 случайных чисел от 0 до 100.

Примечание: я использую функцию Python 3 range (не xrange).

import random

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

Вывод помещается в список:

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

Ответ 5

Это слишком поздно, но в случае, если кто-то найдет это полезным.

Вы можете использовать понимание списка.

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

Выход:

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

Ура!

Ответ 6

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)

Ответ 7

xrange() не будет работать для 3.x.

numpy.random.randint().tolist() - отличная альтернатива целым числам в указанном интервале:

 #[In]:
import numpy as np
np.random.seed(123) #option for reproducibility
np.random.randint(low=0, high=100, size=10).tolist()

#[Out:]

[66, 92, 98, 17, 83, 57, 86, 97, 96, 47]

У вас также есть np.random.uniform() для поплавков:

#[In]:
np.random.uniform(low=0, high=100, size=10).tolist()

#[Out]:
[69.64691855978616,
28.613933495037948,
22.68514535642031,
55.13147690828912,
71.94689697855631,
42.3106460124461,
98.07641983846155,
68.48297385848633,
48.09319014843609,
39.211751819415056]

Ответ 8

my_randoms = [randint(n1,n2) for x in range(listsize)]