Как перемешать элементы массива python
Можно воспользоваться модулем random из стандартной библиотеки. Его нужно импортировать перед тем как использовать. Нам понадобится метод shuffle() . Он может перемешать элементы переданного списка. Ниже пример использования:
>>> collection = [1, 2, 3, 4, 5] >>> import random >>> random.shuffle(collection) >>> print(collection) [3, 5, 4, 2, 1]
Как перемешать двумерный список?

Обычно преобразуют в одномерный список (честно или при помощи абстракции), перемешивают, и восстанавливают размеры.
Набросал такой перемешиватель:
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
- +1 ещё
Как отправить жалобу на телеграмм канал или чат, используя pyrogram?
- 1 подписчик
- 11 минут назад
- 3 просмотра
Как перемешать список python



Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
Перемешивание списка
Расширение списка и затем его перемешивание
Вот код: import random sub=input(‘Введи через запятую твое завтрашнее расписание в школе: ‘).
Перемешивание массива
Есть массив: l = .Как можно его перемешать, чтобы в итоге: 1.) Позиция каждого элемента отличалась.
Перемешивание списка
Здравствуйте. Можно ли в ворде или блокноте сделать макрос, который работал бы так: я выделяю.
Перемешивание списка
Подскажите как сделать перемешивание списка случайным образом, чтобы числа которые находятся в.
![]()
5415 / 3839 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Работает одинаково. Просто вы что-то не то делаете. Или не понимаете, что вам нужно.
P.S. Если вы используете функцию — зачем там print? Из функций принято возвращать значения.
Регистрация: 28.02.2017
Сообщений: 32
Print ясное дело для вывода. Десятки функций написаны, и всегда всё работало.
Однако.
Ложная тревога — походу просто IDLE заглючило. Перезагрузил и всё работает как надо.
![]()
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 (случайное перемешивание.
Перемешивание
Сортировать я умею. А как намерено перемешать записи? При каждом новом исполнении запроса на.