Каков наилучший способ разделить список на примерно равные части? Например, если список содержит 7 элементов и разделен на 2 части, мы хотим получить 3 элемента в одной части, а в другом - 4 элемента.
Я ищу что-то вроде even_split(L, n)
, которое разбивает L
на части n
.
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in xrange(0, len(L), n):
yield L[i:i+n]
Приведенный выше код дает куски 3, а не 3 куска. Я мог бы просто транспонировать (перебирать по нему и принимать первый элемент каждого столбца, вызывать эту первую часть, затем брать вторую и помещать ее во вторую часть и т.д.), Но это уничтожает порядок элементов.