Что такое функция shuffle в Python?
4 года назад
Andrey Moshkov
Ответы
Функция shuffle() модуля random перемешивает элементы изменяемой последовательности (список) на месте в случайном порядке.
Функция ничего не возвращает, а изменяет непосредственно сам объект последовательности.
Функция shuffle() способна работать только с изменяемыми последовательностями, такими как списки, поэтому применить ее к неизменяемым последовательностям, таким как строка или кортеж не получится. Для перемешивания неизменяемых последовательностей можно преобразовать неизменяемую последовательность к изменяемой:
Так же можно использовать функцию random.sample().
Количество возвращаемых элементов в выборке не должно превышать размер самой выборки, т.е. k <= len(x), в противном случае будет ошибка ValueError.
4 года назад
Дмитрий Ибрагимов
random.shuffle() перемешивает элементы списка в случайном порядке:
Функция меняет сам список и возвращает None. Частая ошибка:
Перемешать и сохранить исходный список
random.sample() возвращает новый перемешанный список:
Строки и кортежи
Строки и кортежи неизменяемые, shuffle для них выдаст TypeError. Перемешайте символы и соберите строку заново:
Одинаковый порядок при каждом запуске
Для тестов и воспроизводимых экспериментов задайте зерно генератора:
NumPy и pandas
Для паролей и токенов модуль random не подходит. Используйте secrets: secrets.SystemRandom().shuffle(items).
Модули стандартной библиотеки разбирают в бесплатном курсе «Основы Python».
10 дней назад
Никита Вихров
Похожие вопросы






