Язык программирования Python

Как перемешать элементы списка в Python

В этом посте я покажу вам, как перемешать элементы массива или списка в Python.

Из массива любого типа мы собираемся смешать или рандомизировать данные таким образом, чтобы их порядок был другим. Для этого мы создадим копию массива, пройдем по нему и поменяем местами его элементы.

Объяснение алгоритма на языке Python

Мы будем выполнять цикл  for  от 0 до значения длины массива минус 1. То есть, увеличивать число от 0 до длины -1.

Таким образом, мы получим индекс массива на каждом шаге. Затем мы вычислим случайный индекс, взяв случайное число в определенном диапазоне.

Когда у нас есть случайный индекс, мы помещаем элемент текущего индекса во временную переменную. Затем копируем все, что находится в случайном индексе, в текущий элемент, и, наконец, помещаем временную переменную в случайный индекс.

По сути, мы выполняем обмен переменными. Вы увидите, что все будет очень просто.

Код перемешивания списка

Итак, давайте посмотрим код для перемешивания списка в Python. Я заключил его в функцию, которая получает массив и возвращает другой массив с элементами исходного, но с произвольной расстановкой элементов.

def mix_list(list_original): # Создаем копию, поскольку мы не должны изменять оригинал list = list_original[:] # Цикл от 0 до длины списка -1 list_length = len(list) for i in range(list_length): # Получение случайного индекса index_aleatory = random.randint(0, list_length - 1) # Замена temp = list[i] lista[i] = list[index_aleatory] list[index_aleatory] = temp # Возвращаем список return list
Code language: PHP (php)

Важно создать копию массива, чтобы не модифицировать исходный. Цикл  for  выполняется в строке 7, случайный индекс вычисляется в строке 10, а замена выполняется в строках с 12 по 14.

Использование функции

Мы можем использовать его следующим образом:

list = [1, 2, 3, 4, 5, 6, 7, 8, 9] mixed_list = mix_list(list) print("Исходный список: ") print(list) print("Перемешанный список: ") print(mixed_list)
Code language: PHP (php)

Массив или список может быть получен откуда угодно и может иметь элементы любого типа.

Собираем все вместе

Полный код выглядит следующим образом:

import random def mix_list(list_original): # Создаем копию, поскольку мы не должны изменять оригинал list = list_original[:] # Цикл от 0 до длины списка -1 list_length = len(list) for i in range(list_length): # Получение случайного индекса index_aleatory = random.randint(0, list_length - 1) # Замена temp = list[i] lista[i] = list[index_aleatory] list[index_aleatory] = temp # Возвращаем список return list list = [1, 2, 3, 4, 5, 6, 7, 8, 9] mixed_list = mix_list(list) print("Исходный список: ") print(list) print("Перемешанный список: ") print(mixed_list)
Code language: PHP (php)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *