Автор оригинала: Team Python Pool.
Понятие тасовки в Python происходит от тасовки колоды карт. Тасовка-это процедура, используемая для рандомизации колоды игральных карт, чтобы обеспечить элемент случайности в карточных играх. Тасовка часто сопровождается сокращением, чтобы гарантировать, что тасовщик не манипулировал результатом. В Python shuffle list используется для получения полностью рандомизированного списка python.
Функция shuffle() может использоваться для перетасовки списка. Тасовка выполняется на месте, что означает, что список, предоставленный в качестве аргумента функции shuffle(), тасуется, а не тасуется копия создаваемого и возвращаемого списка.Мы можем тасовать список, как колоду карт, с помощью функции/метода shuffle (). Это перетасовывает список на месте. Другими словами, ему не нужно создавать новый список, чтобы поместить перетасованные элементы в один за другим.
Python Перемешивает список С помощью функции shuffle()
Функция shuffle() в модуле Python random может использоваться для перетасовки списка.
Перетасовка выполняется на месте, что означает, что список, предоставленный в качестве аргумента функции shuffle (), перетасовывается, а не перетасованная копия создаваемого и возвращаемого списка.
Метод shuffle() принимает последовательность (список, строку или кортеж) и реорганизует порядок элементов.
Синтаксис функции shuffle() для Python Shuffle List
random.shuffle(lst, function)
Параметры
- lst − Обязательно. Последовательность. Это может быть список, кортеж или строка.
- случайный − Необязательно. Имя функции, которая возвращает число от 0.0 до 1.0. Если не указано, то будет использоваться функция random().
Возвращаемое значение функции shuffle()
Этот метод возвращает перетасованный список.
Блок-схема функции shuffle() для списка случайного воспроизведения Python
Давайте перейдем к примерам.
Пример 1: Базовая программа Python для Python Shuffle List с помощью функции shuffle()
import random
countries=["India", "China", "USA", "UK", "France"]
random.shuffle(countries)
print(countries)
Выход:
['USA', 'France', 'China', 'UK', 'India']
Объяснение:
В приведенном выше примере мы перетасовали список стран Python. Во-первых, мы импортировали случайный модуль. Поскольку метод или функция shuffle присутствует в случайном модуле. Поэтому мы должны сначала импортировать случайный модуль. После этого мы инициализировали и создали свой список стран. Здесь вы можете создать любой список Python по вашему выбору. Затем мы перетасовали список стран Python с помощью функции shuffle ().
Пример 2: Перетасовка списка n n Количество раз С использованием цикла for и диапазона
Используя цикл for, мы можем перетасовать список любое количество раз, сколько захотим.
import random
mylist =['26','Python','Pool','is','Best','Way','To','Learn','Python']
for x in range(10):
random.shuffle(mylist)
print(mylist)
Выход:
['26', 'Way', 'is', 'Python', 'To', 'Python', 'Best', 'Pool', 'Learn']
['Pool', '26', 'To', 'Learn', 'Python', 'is', 'Best', 'Python', 'Way']
['26', 'is', 'Pool', 'Way', 'Python', 'To', 'Best', 'Learn', 'Python']
['26', 'Learn', 'Way', 'Pool', 'Best', 'is', 'Python', 'Python', 'To']
['Best', 'Way', 'Python', 'Pool', 'is', 'Learn', 'To', 'Python', '26']
['Python', 'Pool', 'Python', 'Learn', 'Way', 'Best', 'is', 'To', '26']
['Best', '26', 'Learn', 'To', 'is', 'Python', 'Pool', 'Python', 'Way']
['26', 'Python', 'Way', 'is', 'Python', 'To', 'Pool', 'Learn', 'Best']
['is', 'Best', '26', 'Python', 'Python', 'Learn', 'Way', 'Pool', 'To']
['26', 'Python', 'is', 'Pool', 'To', 'Learn', 'Way', 'Python', 'Best']
Объяснение:
В этом втором примере мы взяли список Python [’26’,’Python’,’Pool’,’is’,’Best’,’Way’,’To’,’Learn’,’Python’]. И мы хотим перетасовать этот список 10 раз. Итак, чтобы получить желаемый результат. Мы использовали Python для цикла с диапазоном 10 и инициализировали его. И внутри этого цикла for мы используем метод shuffle случайного модуля. Он будет делать перетасовку списка до тех пор, пока цикл продолжается.
Примечание:
Если вы хотите перетасовать список 20 раз. Вы должны просто изменить href=”https://en.wikipedia.org/wiki/Parameter”>параметр диапазона (20) функции до 20. href=”https://en.wikipedia.org/wiki/Parameter”>параметр диапазона (20) функции до 20.
Пример 3: Перетасовка двух списков Python одновременно в одном порядке
Предположим, что вы хотите перетасовать два списка Python. Но также хочет поддерживать тот же порядок перетасовки. Например, один список содержит название страны, а другой – заглавную букву.
import random
country = ['India', 'China', 'USA', 'UK']
capital = ['New Delhi', 'Beijing', 'Washington DC', 'London']
print("Lists Before Shuffling")
print("List of Countries Names: ", country)
print("List of Capitals: ", capital)
(zip(country, capital))
random.shuffle(mapIndexPosition)
country,(*mapIndexPosition)
print("\nLists after Shuffling")
print("List of Countries Names: ", country)
print("List of Capitals: ", capital)
Выход:
Lists Before Shuffling
List of Countries Names: ['India', 'China', 'USA', 'UK']
List of Capitals: ['New Delhi', 'Beijing', 'Washington DC', 'London']
Lists after Shuffling
List of Countries Names: ('UK', 'China', 'India', 'USA')
List of Capitals: ('London', 'Beijing', 'New Delhi', 'Washington DC')
Пример 1: Базовая программа Python для Python shuffle list of lists
Другой действительно интересный вариант использования-это когда у вас есть вложенные структуры с аналогичными данными. В этом случае вы можете просто перебирать списки и применять функцию shuffle.Shuffling list of lists in python with loop. Это приведет к перетасовке не только первого уровня элементов списка, но и вложенных. Этот код работает только с двумя уровнями подсписков, но тот же подход может быть применен и для других уровней:
import random
mylist = [['a','b','c'],['d','e','f'],['g','h','i']]
random.shuffle(mylist)
for sublist in mylist:
random.shuffle(sublist)
print(mylist)
Выход:
[['d', 'e', 'f'], ['c', 'b', 'a'], ['i', 'h', 'g']]
Как перетасовать колоду карт в Python
В этом разделе статьи вы научитесь тасовать колоду карт в Python. Использование случайного модуля функции shuffle ().
Код Python для перетасовки карт
# Python program to shuffle a deck of card
# importing modules
import itertools, random
# make a deck of cards(itertools.product(range(1,14),['Spade','Heart','Diamond','Club']))
# shuffle the cards
random.shuffle(deck)
# draw five cards
print("You got:")
for i in range(5):
print(deck[i][0], "of", deck[i][1])
Выход:
You got:
10 of Diamond
8 of Heart
11 of Heart
10 of Spade
1 of Club
Пояснение:
Примечание: Запустите программу еще раз, чтобы перетасовать карты.
В программе мы использовали функцию product() в модуле itertools для создания колоды карт. Эта функция выполняет декартово произведение двух последовательностей.
Две последовательности-это числа от 1 до 13 и четыре масти. Итак, в общей сложности у нас есть 13 * предметов в колоде с каждой картой в виде кортежа. Например,
deck[0] = (1, 'Spade')
Наша колода упорядочена, поэтому мы тасуем ее с помощью функции shuffle() в модуле random.
Наконец, мы рисуем первые пять карт и показываем их пользователю. Мы будем получать разные выходные данные каждый раз, когда вы запускаете эту программу, как показано на наших двух выходных данных.
Здесь мы использовали стандартные модули itertools и random, поставляемые с Python.
Должен Читать:
Как преобразовать строку в нижний регистр в PythonКак вычислить квадратный корень в PythonPython User Input | Python Input () Function | Keyboard InputЛучшая книга для изучения Python в 2020 годуPython Reverse List Using reverse() reversed() and Slicing
Вывод
Итак, в этой статье мы рассмотрели лучший способ Python Shuffle List. Есть много способов перетасовать список в Python, но мы выбрали shuffle(). Причина выбора функции Python shuffle() довольно проста. Он прост в использовании.2. Нам не нужно делать дополнительное кодирование. Он быстр и доступен во встроенном модуле
Итак, я надеюсь, что теперь вы полностью поняли, как перетасовать список в Python.Если у вас все еще есть какие-либо сомнения, дайте нам знать в разделе комментариев ниже.
Счастливого кодирования!