число - сгенерировать список случайных чисел python




Генерировать случайные целые числа от 0 до 9 (12)

В случае непрерывных чисел randint или randint , вероятно, являются лучшим выбором, но если у вас есть несколько различных значений в последовательности (то есть list ), вы также можете использовать choice :

>>> import random
>>> values = list(range(10))
>>> random.choice(values)
5

choice также работает для одного элемента из не непрерывного образца:

>>> values = [1, 2, 3, 5, 7, 10]
>>> random.choice(values)
7

Если вам это нужно «криптографически сильным», есть также secrets.choice в python 3.6 и новее:

>>> import secrets
>>> values = list(range(10))
>>> secrets.choice(values)
2

Как я могу генерировать случайные целые числа от 0 до 9 (включительно) в Python?

Например, 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9


Выберите размер массива (в этом примере я выбрал размер 20). И затем используйте следующее:

import numpy as np   
np.random.randint(10, size=(1, 20))

Вы можете ожидать выхода из следующей формы (при каждом запуске будут возвращаться различные случайные числа, поэтому вы можете ожидать, что целые числа в выходном массиве будут отличаться от приведенного ниже примера ).

array([[1, 6, 1, 2, 8, 6, 3, 3, 2, 5, 6, 5, 0, 9, 5, 6, 4, 5, 9, 3]])

Для примера, который вы указали (целые числа, начиная с 0 и до 9), наиболее чистое решение выглядит следующим образом:

from random import randrange

randrange(10)

Лучший способ - использовать функцию Random Random

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

или без импорта библиотеки:

n={} 
for i in range(10):
    n[i]=i

for p in range(10):
    print(n.popitem()[1])

здесь popitems удаляет и возвращает произвольное значение из словаря n .


Модуль secrets является новым в Python 3.6. Это лучше, чем random модуль для криптографии или безопасности.

Чтобы случайным образом напечатать целое число во включенном диапазоне 0-9:

from secrets import randbelow
print(randbelow(10))

Подробнее см. PEP 506 .


Первоначальный вопрос подразумевает создание множества случайных целых чисел.

Как я могу генерировать целые числа от 0 до 9 (включительно) в Python?

Однако многие ответы показывают только, как получить одно случайное число, например random.randint и random.choice .

Множественные случайные целые числа

Для ясности вы можете генерировать несколько случайных чисел, используя эти методы, просто повторяя N раз:

import random


N = 5

[random.randint(0, 9) for _ in range(N)]
# [9, 7, 0, 7, 3]

[random.choice(range(10)) for _ in range(N)]
# [8, 3, 6, 8, 7]

Пример случайных целых чисел

В некоторых сообщениях показано, как изначально генерировать множество случайных целых чисел. 1 Вот некоторые варианты, которые затрагивают подразумеваемый вопрос:

random.sample возвращает k уникальных выборов из популяции (без замены): 2

random.sample(range(10), k=N)
# [4, 5, 1, 2, 3]

В Python 3.6, random.choices возвращает k random.choices из популяции (с заменой):

random.choices(range(10), k=N)
# [3, 2, 0, 8, 2]

См. Также этот связанный пост с помощью numpy.random.choice .

1 А именно @ Джон Лоренс Аспден, @ST Мохаммед, @SiddTheKid, @ user14372, @zangw и др.

2 @prashanth упоминает этот модуль, показывающий одно целое число.


Попробуйте это через random.shuffle

>>> import random
>>> nums = [x for x in range(10)]
>>> random.shuffle(nums)
>>> nums
[6, 3, 5, 4, 0, 1, 2, 9, 8, 7]


если вы хотите использовать numpy, используйте следующее:

import numpy as np
print(np.random.randint(0,10))

random.sample - другое, которое можно использовать

import random
n = 1 # specify the no. of numbers
num = random.sample(range(10),  n)
num[0] # is the required number

from random import randint

x = [randint(0, 9) for p in range(0, 10)]

Это генерирует 10 псевдослучайных целых чисел в диапазоне от 0 до 9 включительно.






integer