Каков наилучший способ разбить список на примерно равные части? Например, если список состоит из 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 порции. Я мог бы просто транспонировать (перебрать это и взять первый элемент каждого столбца, вызвать эту часть первую, затем взять второй и поместить его во вторую часть и т. Д.), Но это разрушает порядок элементов.