试试这个:
def split_list(lst, n):
result = []
i = 0
while i+n <= len(lst):
result.append([])
for k in range(n):
result[-1].append(lst[i+k])
i += n
j = 0
while i < len(lst):
result[j].append(lst[i])
i += 1
j += 1
j %= len(result)
return result
lst = ['milk','eggs','beef','oranges','dog food','chips','soda','bread']
for i in range(1, len(lst)):
print(i, split_list(lst, i))
结果:
1 [['milk'], ['eggs'], ['beef'], ['oranges'], ['dog food'], ['chips'], ['soda'], ['bread']]
2 [['milk', 'eggs'], ['beef', 'oranges'], ['dog food', 'chips'], ['soda', 'bread']]
3 [['milk', 'eggs', 'beef', 'soda'], ['oranges', 'dog food', 'chips', 'bread']]
4 [['milk', 'eggs', 'beef', 'oranges'], ['dog food', 'chips', 'soda', 'bread']]
5 [['milk', 'eggs', 'beef', 'oranges', 'dog food', 'chips', 'soda', 'bread']]
6 [['milk', 'eggs', 'beef', 'oranges', 'dog food', 'chips', 'soda', 'bread']]
7 [['milk', 'eggs', 'beef', 'oranges', 'dog food', 'chips', 'soda', 'bread']]
这样做有点奇怪,我想你可能从错误的角度来解决问题。