Перейти к содержимому

Как перемешать список python

  • автор:

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

Можно воспользоваться модулем random из стандартной библиотеки. Его нужно импортировать перед тем как использовать. Нам понадобится метод shuffle() . Он может перемешать элементы переданного списка. Ниже пример использования:

>>> collection = [1, 2, 3, 4, 5] >>> import random >>> random.shuffle(collection) >>> print(collection) [3, 5, 4, 2, 1] 

Как перемешать двумерный список?

samodum

Обычно преобразуют в одномерный список (честно или при помощи абстракции), перемешивают, и восстанавливают размеры.

Набросал такой перемешиватель:

import random class Shuffler: def __init__(self, lst, depth=2): self.lst = lst self.depth = depth random.shuffle(self) def __getlevel(self, index, depth): curr = self.lst curr_depth = depth while curr_depth > 0: curr_depth -= 1 curr_size = len(curr) curr = curr[index % curr_size] index //= curr_size return curr, index def __getitem__(self, index): value, index = self.__getlevel(index, self.depth) if index > 0: raise IndexError('list index out of range') return value def __setitem__(self, index, value): last_line, line_index = self.__getlevel(index, self.depth - 1) last_line[line_index] = value return value def __len__(self): acc = 1 curr = self.lst curr_depth = self.depth while curr_depth > 0: curr_depth -= 1 acc *= len(curr) if acc: curr = curr[0] return acc lst = [[i * 10 + j for j in range(10)] for i in range(10)] Shuffler(lst, 2) print(*lst, sep='\n')

[45, 50, 74, 1, 3, 29, 43, 2, 93, 68]
[41, 10, 51, 99, 85, 20, 95, 54, 59, 8]
[46, 64, 24, 12, 26, 15, 6, 76, 39, 5]
[58, 13, 44, 60, 36, 70, 63, 79, 42, 18]
[9, 69, 25, 66, 67, 65, 35, 47, 23, 87]
[78, 80, 22, 73, 97, 31, 91, 75, 82, 90]
[57, 38, 49, 11, 84, 17, 62, 7, 89, 71]
[40, 30, 86, 94, 21, 53, 14, 19, 0, 32]
[33, 37, 61, 92, 81, 88, 56, 83, 98, 34]
[96, 16, 52, 4, 27, 55, 48, 72, 77, 28]

Ответ написан более двух лет назад
Комментировать
Нравится Комментировать

random.shuffle() — перемешивает одномерный массив.

Можно просто пройтись по строкам массива (двумерного списка) и применить к каждой shuffle. Затем применить shuffle к самому массиву.

Это если в изначальном запросе подразумевается равномерное перемешивание элементов по всему массиву.

Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

python

  • Python
  • +1 ещё

Как отправить жалобу на телеграмм канал или чат, используя pyrogram?

  • 1 подписчик
  • 11 минут назад
  • 3 просмотра

Как перемешать список python

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Перемешивание списка

Расширение списка и затем его перемешивание
Вот код: import random sub=input(‘Введи через запятую твое завтрашнее расписание в школе: ‘).

Перемешивание массива
Есть массив: l = .Как можно его перемешать, чтобы в итоге: 1.) Позиция каждого элемента отличалась.

Перемешивание списка
Здравствуйте. Можно ли в ворде или блокноте сделать макрос, который работал бы так: я выделяю.

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

Эксперт Python

5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

Работает одинаково. Просто вы что-то не то делаете. Или не понимаете, что вам нужно.

P.S. Если вы используете функцию — зачем там print? Из функций принято возвращать значения.

Регистрация: 28.02.2017
Сообщений: 32

Print ясное дело для вывода. Десятки функций написаны, и всегда всё работало.

Однако.
Ложная тревога — походу просто IDLE заглючило. Перезагрузил и всё работает как надо.

Эксперт Python

5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1

ЦитатаСообщение от explorer1 Посмотреть сообщение

дело для вывода

Возвращайте результат и потом делайте с ним что хотите.
Функция это единица инкапсуляции. Производить в ней побочные действия не имеющие отношения к ее логике — плохой стиль программирования.

Регистрация: 28.02.2017
Сообщений: 32

ЦитатаСообщение от Garry Galler Посмотреть сообщение

Возвращайте результат и потом делайте с ним что хотите.
Функция это единица инкапсуляции. Производить в ней побочные действия не имеющие отношения к ее логике — плохой стиль программирования.

Вы всё правильно пишите. У меня return вообще ничего не возвращал, даже NONE. Тогда я поменял на принт, чтобы посмотреть в чём дело. И тоже ничего не получил. В итоге оказался глюк. Раньше этого не случалось. Теперь буду знать что такое в принципе возможно )

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Перемешивание массива (списка)
Мне нужно проигрывать допустим 10 мелодий, но мне нужно чтобы они были всегда в рандомном порядке.

Перемешивание списка фамилий
Есть список участников забега, допустим 10 фамилий. мне надо, случайно определить кто выйдет на.

Перемешивание списка фамилий
Есть список участников забега, допустим 10 фамилий. мне надо, случайно определить кто выйдет на.

Перемешивание списка фамилий
т.е у меня есть список участников забега, допустим 10 фамилий. мне надо, случайно определить кто.

Случайное перемешивание элементов списка
помогите с заданием не могу решить в классе список метод — Shuffle (случайное перемешивание.

Перемешивание
Сортировать я умею. А как намерено перемешать записи? При каждом новом исполнении запроса на.

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

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