- Generate a List of Random Integers in Python
- 1. randint() to Generate List of Integers
- Example-
- 2. randrange() to Generate List of Numbers
- Example-
- 3. sample() to Generate List of Integers
- Example-
- Заполнение списка рандомными значениями в Python
- Введение
- Заполнение списка используя функции модуля random
- Заполнение списка используя функцию randint()
- Заполнение списка используя функцию sample()
- Заполнение списка используя функции модуля numpy
- Заключение
- Python 3: Генерация случайных чисел (модуль random)¶
- random.random¶
- random.seed¶
- random.uniform¶
- random.randint¶
- random.choince¶
- random.randrange¶
- random.shuffle¶
- Вероятностные распределения¶
- Примеры¶
- Генерация произвольного пароля¶
- Ссылки¶
- Generating random number list in Python
- Generating a Single Random Number
- Example
- Output
- Generating Number in a Range
- Example
- Output
- Generating a List of numbers Using For Loop
- Example
- Output
- Using random.sample()
- Example
- Output
Generate a List of Random Integers in Python
This tutorial explains several ways to generate random numbers list in Python. Here, we’ll mainly use three Python random number generation functions. These are random.randint(), random.randrange(), and random.sample().
You can find full details of these methods here: Python random number generator . All these functions are part of the Random module. It employs a fast pseudorandom number generator which uses the Mersenne Twister algorithm.
However today, we’ll focus on producing a list of non-repeating integers only. Go through the below bullets to continue.
Generating a random number is crucial for some applications and possessing many usages. Let’s try to understand each of these functions with the help of simple examples.
1. randint() to Generate List of Integers
It is a built-in method of the random module. Read about it below.
It returns a random integer value in the given range.
Error status:
Example-
""" Desc: Generate a list of 10 random integers using randint() """ import random Start = 9 Stop = 99 limit = 10 RandomListOfIntegers = [random.randint(Start, Stop) for iter in range(limit)] print(RandomListOfIntegers)
[35, 86, 97, 65, 86, 53, 94, 15, 64, 74]
2. randrange() to Generate List of Numbers
It produces random numbers from a given range. Besides, it lets us specify the steps.
Return value:
It returns a sequence of numbers beginning from start to stop while hopping the step value.
Error status:
It throws a ValueError when the stop value is smaller or equals to the start, or the input number is a non-integer.
Read more about, here Python randrange().
Example-
""" Desc: Generate a list of 10 random integers using randrange() """ import random Start = 9 Stop = 99 limit = 10 # List of random integers without Step parameter RandomI_ListOfIntegers = [random.randrange(Start, Stop) for iter in range(limit)] print(RandomI_ListOfIntegers) Step = 2 # List of random integers with Step parameter RandomII_ListOfIntegers = [random.randrange(Start, Stop, Step) for iter in range(limit)] print(RandomII_ListOfIntegers)
[52, 65, 26, 58, 84, 33, 37, 38, 85, 82] [59, 29, 85, 29, 41, 85, 55, 59, 31, 57]
3. sample() to Generate List of Integers
It is a built-in function of Python’s random module. It returns a list of items of a given length which it randomly selects from a sequence such as a List, String, Set, or a Tuple. Its purpose is random sampling with non-replacement.
- seq: It could be a List, String, Set, or a Tuple.
- k: It is an integer value that represents the size of a sample.
Return value:
It returns a subsequence of k no. of items randomly picked from the main list.
Example-
""" Desc: Generate a list of 10 random integers using sample() """ import random Start = 9 Stop = 99 limit = 10 # List of random integers chosen from a range Random_ListOfIntegers = random.sample(range(Start, Stop), limit) print(Random_ListOfIntegers)
[97, 64, 82, 85, 96, 93, 76, 62, 36, 34]
We hope that after wrapping up this tutorial, you should feel comfortable to generate random numbers list in Python. However, you may practice more with examples to gain confidence.
Also, to learn Python from scratch to depth, do read our step by step Python tutorial .
Заполнение списка рандомными значениями в Python
Статьи
Введение
В этой небольшой статье рассмотрим способы заполнения списка рандомными значениями.
В основном будем использовать функции модуля random.
Заполнение списка используя функции модуля random
Заполнение списка используя функцию randint()
Самая распространённая функция в модуле random это конечно же randint(), и именно им мы воспользуемся в первом способе!
Для начала мы его импортируем, после чего создаём пустой список, который в последствии будем заполнять:
from random import randint random_list=[]
Далее нам понадобится цикл, в котором мы будем заполнять список рандомными значениями:
from random import randint random_list=[] for i in range(5): random_list.append(randint(1,30))
Осталось только вывести результат:
from random import randint random_list=[] for i in range(5): random_list.append(randint(1,30)) print(random_list) # Вывод: [11, 16, 29, 14, 22]
При желании можно значительно сократить код, и сделать генератор списка:
from random import randint random_list = [randint(1, 30) for i in range(5)] print(random_list) # Вывод: [24, 2, 28, 13, 2]
Заполнение списка используя функцию sample()
Самой подходящей функцией является как раз таки sample(), но почему-то о ней говорят редко.
Для начала естественно импортируем модуль random, после чего сгенерируем список рандомных значений и выведем их:
from random import sample random_list = sample(range(1, 30), 5) print(random_list) # Вывод: [42, 22, 25, 23, 12]
В функции range() мы указали диапазон чисел, а через запятую количество генерируемых чисел.
Заполнение списка используя функции модуля numpy
Переходим к генерации рандомных чисел с помощью модуля numpy. Из него мы будем использовать функцию randint().
Для начала мы его конечно же импортируем:
from numpy.random import randint
Далее создаём список, который мы сразу же заполняем рандомными значениями и выведем его:
from numpy.random import randint random_list = list(randint(low=1, high=30, size=5)) print(random_list) # Вывод: [9, 11, 21, 16, 14]
В первом параметре мы указываем минимальное значение, которое может быть сгенерировано, во втором – максимальное, и в третьем количество значений.
Заключение
В статье мы с Вами научились генерировать списки с рандомными значениями разными способами. Надеюсь Вам понравилась статья, удачи! 🙂
Python 3: Генерация случайных чисел (модуль random)¶
Python порождает случайные числа на основе формулы, так что они не на самом деле случайные, а, как говорят, псевдослучайные [1]. Этот способ удобен для большинства приложений (кроме онлайновых казино) [2].
[1] | Википедия: Генератор псевдослучайных чисел |
[2] | Доусон М. Программируем на Python. — СПб.: Питер, 2014. — 416 с.: ил. — 3-е изд |
Модуль random позволяет генерировать случайные числа. Прежде чем использовать модуль, необходимо подключить его с помощью инструкции:
random.random¶
random.random() — возвращает псевдослучайное число от 0.0 до 1.0
random.random() 0.07500815468466127
random.seed¶
random.seed() — настраивает генератор случайных чисел на новую последовательность. По умолчанию используется системное время. Если значение параметра будет одиноким, то генерируется одинокое число:
random.seed(20) random.random() 0.9056396761745207 random.random() 0.6862541570267026 random.seed(20) random.random() 0.9056396761745207 random.random() 0.7665092563626442
random.uniform¶
random.uniform(, ) — возвращает псевдослучайное вещественное число в диапазоне от до :
random.uniform(0, 20) 15.330185127252884 random.uniform(0, 20) 18.092324756265473
random.randint¶
random.randint(, ) — возвращает псевдослучайное целое число в диапазоне от до :
random.randint(1,27) 9 random.randint(1,27) 22
random.choince¶
random.choince() — возвращает случайный элемент из любой последовательности (строки, списка, кортежа):
random.choice('Chewbacca') 'h' random.choice([1,2,'a','b']) 2 random.choice([1,2,'a','b']) 'a'
random.randrange¶
random.randrange(, , ) — возвращает случайно выбранное число из последовательности.
random.shuffle¶
random.shuffle() — перемешивает последовательность (изменяется сама последовательность). Поэтому функция не работает для неизменяемых объектов.
List = [1,2,3,4,5,6,7,8,9] List [1, 2, 3, 4, 5, 6, 7, 8, 9] random.shuffle(List) List [6, 7, 1, 9, 5, 8, 3, 2, 4]
Вероятностные распределения¶
random.triangular(low, high, mode) — случайное число с плавающей точкой, low ≤ N ≤ high . Mode — распределение.
random.betavariate(alpha, beta) — бета-распределение. alpha>0 , beta>0 . Возвращает от 0 до 1.
random.expovariate(lambd) — экспоненциальное распределение. lambd равен 1/среднее желаемое. Lambd должен быть отличным от нуля. Возвращаемые значения от 0 до плюс бесконечности, если lambd положительно, и от минус бесконечности до 0, если lambd отрицательный.
random.gammavariate(alpha, beta) — гамма-распределение. Условия на параметры alpha>0 и beta>0 .
random.gauss(значение, стандартное отклонение) — распределение Гаусса.
random.lognormvariate(mu, sigma) — логарифм нормального распределения. Если взять натуральный логарифм этого распределения, то вы получите нормальное распределение со средним mu и стандартным отклонением sigma . mu может иметь любое значение, и sigma должна быть больше нуля.
random.normalvariate(mu, sigma) — нормальное распределение. mu — среднее значение, sigma — стандартное отклонение.
random.vonmisesvariate(mu, kappa) — mu — средний угол, выраженный в радианах от 0 до 2π, и kappa — параметр концентрации, который должен быть больше или равен нулю. Если каппа равна нулю, это распределение сводится к случайному углу в диапазоне от 0 до 2π.
random.paretovariate(alpha) — распределение Парето.
random.weibullvariate(alpha, beta) — распределение Вейбулла.
Примеры¶
Генерация произвольного пароля¶
Хороший пароль должен быть произвольным и состоять минимум из 6 символов, в нём должны быть цифры, строчные и прописные буквы. Приготовить такой пароль можно по следующему рецепту:
import random # Щепотка цифр str1 = '123456789' # Щепотка строчных букв str2 = 'qwertyuiopasdfghjklzxcvbnm' # Щепотка прописных букв. Готовится преобразованием str2 в верхний регистр. str3 = str2.upper() print(str3) # Выведет: 'QWERTYUIOPASDFGHJKLZXCVBNM' # Соединяем все строки в одну str4 = str1+str2+str3 print(str4) # Выведет: '123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM' # Преобразуем получившуюся строку в список ls = list(str4) # Тщательно перемешиваем список random.shuffle(ls) # Извлекаем из списка 12 произвольных значений psw = ''.join([random.choice(ls) for x in range(12)]) # Пароль готов print(psw) # Выведет: '1t9G4YPsQ5L7'
Этот же скрипт можно записать всего в две строки:
import random print(''.join([random.choice(list('123456789qwertyuiopasdfghjklzxc vbnmQWERTYUIOPASDFGHJKLZXCVBNM')) for x in range(12)]))
Данная команда является краткой записью цикла for, вместо неё можно было написать так:
import random psw = '' # предварительно создаем переменную psw for x in range(12): psw = psw + random.choice(list('123456789qwertyuiopasdfgh jklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM')) print(psw) # Выведет: Ci7nU6343YGZ
Данный цикл повторяется 12 раз и на каждом круге добавляет к строке psw произвольно выбранный элемент из списка.
Ссылки¶
Generating random number list in Python
There is a need to generate random numbers when studying a model or behavior of a program for different range of values. Python can generate such random numbers by using the random module. In the below examples we will first see how to generate a single random number and then extend it to generate a list of random numbers.
Generating a Single Random Number
The random() method in random module generates a float number between 0 and 1.
Example
import random n = random.random() print(n)
Output
Running the above code gives us the following result −
Generating Number in a Range
The randint() method generates a integer between a given range of numbers.
Example
import random n = random.randint(0,22) print(n)
Output
Running the above code gives us the following result −
Generating a List of numbers Using For Loop
We can use the above randint() method along with a for loop to generate a list of numbers. We first create an empty list and then append the random numbers generated to the empty list one by one.
Example
import random randomlist = [] for i in range(0,5): n = random.randint(1,30) randomlist.append(n) print(randomlist)
Output
Running the above code gives us the following result −
Using random.sample()
We can also use the sample() method available in random module to directly generate a list of random numbers.Here we specify a range and give how many random numbers we need to generate.
Example
import random #Generate 5 random numbers between 10 and 30 randomlist = random.sample(range(10, 30), 5) print(randomlist)
Output
Running the above code gives us the following result −