Как вывести рандомный элемент из списка python
Модуль random управляет генерацией случайных чисел. Его основные функции:
- random() : генерирует случайное число от 0.0 до 1.0
- randint() : возвращает случайное число из определенного диапазона
- randrange() : возвращает случайное число из определенного набора чисел
- shuffle() : перемешивает список
- choice() : возвращает случайный элемент списка
Функция random() возвращает случайное число с плавающей точкой в промежутке от 0.0 до 1.0. Если же нам необходимо число из большего диапазона, скажем от 0 до 100, то мы можем соответственно умножить результат функции random на 100.
import random number = random.random() # значение от 0.0 до 1.0 print(number) number = random.random() * 100 # значение от 0.0 до 100.0 print(number)
Функция randint(min, max) возвращает случайное целое число в промежутке между двумя значениями min и max.
import random number = random.randint(20, 35) # значение от 20 до 35 print(number)
Функция randrange() возвращает случайное целое число из определенного набора чисел. Она имеет три формы:
- randrange(stop) : в качестве набора чисел, из которых происходит извлечение случайного значения, будет использоваться диапазон от 0 до числа stop
- randrange(start, stop) : набор чисел представляет диапазон от числа start до числа stop
- randrange(start, stop, step) : набор чисел представляет диапазон от числа start до числа stop, при этом каждое число в диапазоне отличается от предыдущего на шаг step
import random number = random.randrange(10) # значение от 0 до 10 не включая print(number) number = random.randrange(2, 10) # значение в диапазоне 2, 3, 4, 5, 6, 7, 8, 9 print(number) number = random.randrange(2, 10, 2) # значение в диапазоне 2, 4, 6, 8 print(number)
Работа со списком
Для работы со списками в модуле random определены две функции: функция shuffle() перемешивает список случайным образом, а функция choice() возвращает один случайный элемент из списка:
numbers = [1, 2, 3, 4, 5, 6, 7, 8] random.shuffle(numbers) print(numbers) random_number = random.choice(numbers) print(random_number)
Используем модуль Python random получая случайные значения с sample() и choice()
Для работы со случайными значениями в Python используется модуль random. Кроме получения числовых значений, используя этот модуль, мы можем получить как одно случайное значение из списка так и группу. Рассмотрим как можно реализовать эту задачу на примере нескольких методов, а так же sample() и choice().
Навигация по посту
- Получение одного случайного значения
- По индексу с randint()
- По индексу с randrange()
- Из списка с choice()
- sample()
- Перемешиваем словарь случайным образом
- choices()
Получение одного случайного значения
По индексу с randint()
randint(a, b) возвращает случайное число между ‘a’ и ‘b’ включительно. Мы можем это использовать в списках подставив 0, как указатель начала списка, и len(list) — 1, как указатель его конца:
from random import randint l = ['один', 'два', 'три'] r = l[randint(0, len(l)-1)]В случае со словарями вариантов больше. Например мы можем использовать метод ‘items()’ возвращающий список кортежей:
from random import randint d = data = list(d.items()) key,val = data[randint(0, len(d)-1)]По индексу с randrange()
from random import randrange lst = ['один', 'два', 'три'] r = lst[randrange(len(lst))]Пример получения такого результата из словаря:
from random import randrange dct = data = list(dct.keys()) # data хранит ['1', '2', '3'] key = data[randrange(len(data))]
Из списка с choice()
choice() — основной способ получения случайного значения из списка. В его случае мы не должны думать о его длине и индексах:
from random import choice lst = choice(['один', 'два', 'три'])Пример со словарем:
from random import randrange dct = data = choice(list(dct.items()))
Получение нескольких случайных значений
sample()
Метод sample(x, y) использует ‘x’ как массив и ‘y’ как число значений, которые вам необходимо вернуть. Возвращаемая группа не будет содержать дубликатов. Пример получения группы случайных значений со списком:
from random import sample lst = ['один', 'два', 'три'] r = sample(lst, 2)from random import sample dct = data = list(dct.items()) r = sample(data, 2)
Перемешиваем словарь случайным образом
Используя этот метод вы так же можете перемешать список указав всю его длину:
from random import sample l = ['один', 'два', 'три'] r = sample(lst, len(l))choices()
Так же группу значений можно вернуть с choices(list, k=count). Отличие этого метода от предыдущего в том, что он может взять один и тот же элемент из списка (т.е. не следит за дубликатами).
Пример со списком:
from random import choices lst = ['один', 'два', 'три'] r = choices(lst, k=2)from random import choices dct = data = list(dct.items()) r = choices(data, k=2)
Еще один пример разницы samle и choices:
from random import choices, sample lst = [1,2,3,4,5] print('Одно значение повторяется несколько раз: ', choices(lst, k=3)) print('Только уникальные: ', sample(lst, 3))Выбрать случайный элемент из части списка
Недавно изучаю питон, есть вопрос, допустим у меня есть список:
foo = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
как мне сделать, чтобы я мог выбрать случайный элемент не среди всех, а только конкретных. Например выбрать случайный из (b,c,d)Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:Изменить тип списка и выбрать случайный элемент из списка, который ввел пользователь
Помогите пожалуйста изменить тип списка с integer в string. Я паскаль только изучаю и не могу.Выбрать случайный элемент массива
Есть двумерный массив в котором слова расписаны побуквенно. Подскажите пожалуйста как выбрать.
Выбрать случайный элемент в ListBox
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Randomize().Am I evil? Yes, I am!


16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624
Сообщение было отмечено Vladik356 как решение
Решение
random.choice(foo[с какого : до какого])
Регистрация: 13.12.2017
Сообщений: 12
iSmokeJC, спасибо большое! а как еще сделать, чтоб варианты не повторялись?
Am I evil? Yes, I am!

16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624
Vladik356, тот, который уже выпал, убирать из списка
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесьКак выбрать случайный элемент из массива строк?
Суть проста массив работает , но иногда выдает пробел вместо фамилии. Сильно камнями не.Получить случайный элемент списка с определённым значением
Добрый день. Есть список List<Vector3> (c# unity), т. е. набор координат вида (x,y,z). Нужно.Выбрать случайный элемент массива и вывести элементы, начинающиеся на последний символ.
Имеется массив А длины с 10-ю названиями овощей и фруктов. Случайно выбирается элемент массива s и.Выбрать случайный элемент массива и вывести элементы, длина которых совпадает с длиной s
Добрый вечер, помогите с решением задачи Задать массив А длины 10 с 10-ю названиями овощей и.Выбрать случайный элемент массива и вывести элементы, длина которых совпадает с длиной s
Добрый вечер, помогите с решением задачи Задать массив А длины 10 с 10-ю названиями овощей и.
Поменять в матрице случайный элемент в первой строке и случайный элемент в последней строке
Пользователь вводит массив 3 строки 4 столбца. Программа меняет местами случайный элемент в первой.
Выбрать последний элемент списка
подскажите пожалуйста как выбрать последний элемент списка?Вложенные списки. Модуль random¶
Модуль random предоставляет функции для работы с псевдослучайными величинами. Для решения задач этого занятия понадобятся следующие функции.
Возвращает псевдослучайное число на отрезке [a, b] .
random. choice ( seq ) ¶
Возвращает случайный элемент из последовательности seq . Пример:
>>> import random >>> t = (1, 2, 3) >>> random.choice(t) 2 >>> random.choice(t) 1
random. shuffle ( lst ) ¶
Перемешивает элементы в списке lst :
>>> lst = list(range(10)) >>> lst [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> random.shuffle(lst) >>> lst [0, 9, 3, 2, 1, 5, 7, 6, 4, 8]
Задачи¶
- Реализовать игру «Города». Шаг 1. Версия для двух игроков за одним компьютером. Названные города не должны повторяться. Шаг 2. Добавить проверку на существование города. Шаг 3. Реализовать режим игры против компьютера. Модули с подготовленными списками городов:
- cities_cpu_win.py
- cities_loop.py
- cities_player_win.py
- cities.py
- Реализовать игру «Анаграммы». Приложение выводит слово, буквы в котором перемешаны. Игрок должен назвать исходное слово.
- Пользователь вводит три числа: n , min_value , max_value . Приложение создает список из n элементов и заполняет его случайными числами из [min_value, max_value] .
- По аналогии с задачей 1 создать матрицу n на m и заполнить ее случайными числами из [min_value, max_value) .
- Цвета кодируются тройкой (red, green, blue) . Каждый компонент может принимать значения от 0 до 255. Напишите приложение, генерирующее случайный цвет. Для удобства его значение можно вывести в шестнадцатеричном формате (например, 345EBF ). Для просмотра полученного цвета можно использовать сервис https://colorscheme.ru/.
- Пользователь вводит число n . Приложение создает и выводит матрицу, заполненную «змейкой». Пример:
n: 5 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16 21 22 23 24 25
ticket = [ [ 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25], ]
Пользователь должен выбрать пять чисел: по одному числу из каждой строки. Числа могут быть выбраны в любом порядке. Приложение делает аналогичный выбор случайным образом, а затем выводит статистику. Пример:
row 0 3 row 1 7 row 2 14 row 3 19 row 4 21 User Random 3 1 - 7 9 - 14 13 - 19 19 + 21 23 -
© Copyright Revision d00c0df4 .
Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latestVersions latest Downloads html On Read the Docs Project Home Builds Free document hosting provided by Read the Docs.
