Функция shuffle() в Python - перемешивание списков
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

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

Синтаксис:

import random

random.shuffle(x, random)

Аргументы:

  • x - изменяемая последовательность, только: список.
  • random - функция, которая выполняет случайное перемешивание, является необязательной. Данный аргумент будет удален в Python 3.11, т.к он устарел в версии 3.9.

Функция shuffle() перемешивает последовательность сразу на месте, не возвращая никаких значений, для нее не нужно создавать отдельную переменную.

Необязательный параметр random принимает имя функции, которая производит случайные числа с плавающей запятой в диапазоне от 0.0, 1.0, с единственным условием — эта функция не должна принимать параметры. По умолчанию используется функция random.random():

Примеры:

import random

# Список с числами
random_list = [1, 2, 3, 4, 5]

# Перемешиваем список
random.shuffle(random_list)

# Выводим информацию
print(random_list)

Результат:

>>> [5, 4, 1, 2, 3]

Примечание: Если мы передадим не список в функцию, то получим ошибку, например передав множество, ошибка будет следующая: TypeError: 'set' object is not subscriptable

Ещё примеры:

import random

# Список с числами range
random_list = list(range(10, 20))

# Перемешиваем список
random.shuffle(random_list)

# Выводим информацию
print(random_list)

Результат:

>>> [19, 10, 16, 15, 11, 12, 13, 17, 14, 18]

Чтобы перемешать строку, кортеж, множество - их нужно преобразовать в список.

import random

# Список с числами range
random_set = set(range(10, 20))

# Тип
print(random_set, type(random_set))

# Преобразование в список
random_set = list(random_set)

# Перемешиваем список
random.shuffle(random_set)

# Выводим информацию
print(random_set, type(random_set))

Результат:

>>> {10, 11, 12, 13, 14, 15, 16, 17, 18, 19} <class 'set'>
>>> [15, 19, 12, 11, 13, 18, 10, 16, 17, 14] <class 'list'>

Со строками, также необходимо преобразование:

import random

# Строку переводим в список
text_list = list('notehunter')

# Смешиваем
random.shuffle(text_list)

# Преобразуем обратно в строку
text_list = ''.join(text_list)

# Выводим информацию
print(text_list)

Результат:

>>> eutehnrton

Также есть функция random.sample(), которая работает с другими последовательностями, ее рассмотрим в другом уроке.

Теги записи: Python, Основы Python, shuffle(), random,
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)