в Python, функция Zip () объединяет элементы из множества итерам в единственную итерабируемую кортежи. При использовании с синтаксисом Zip ( [iter (s)] n) он предлагает удобный способ разделить список на куски одинакового размера.
выражение [iter (s)]
n создает список, содержащий n копий итератора над списком s. Каждая копия итератора начинается в начале списка. *Args распаковывает список в аргументы для Zip (), в результате чего n иеры передаются в функцию.verbose эквивалент:
для воссоздания функциональности Zip ( [iter (s)]
n) с словесным кодом:def verbose_chunk (s, n): "" "Возвращает список кусков одинакового размера из списка." "" "" кусочки = [] для я в диапазоне (n): chunk = [] Для j в диапазоне (Len (s) // n): chunk.append (следующий (iter (s))) chunks.append (Tuple (Chunk)) вернуть куски
этот код сначала итерации по желаемому количеству кусков. Для каждой куски он использует вложенную петлю для итерации над элементами в списке и добавляет их в кусок. Затем кусок преобразуется в кортеж и добавляется в список кусочек. , 7,8,9] n = 3 print (list (zip (*[iter (s)]*n)) # [(1,2,3), (4,5,6), (7,8,9)]] print (verbose_chunk (s, n)) # [(1,2,3), (4,5,6), (7,8,9)]def verbose_chunk(s, n): """Returns a list of chunks of equal size from a list.""" chunks = [] for i in range(n): chunk = [] for j in range(len(s) // n): chunk.append(next(iter(s))) chunks.append(tuple(chunk)) return chunksоба подхода дают одинаковый результат с Краткий Zip (
] [iter (s)]
n) выражение, предлагающее более эффективный синтаксис для разделения списков на кусочки.]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3