List 用pythonic方法分割列表?

List 用pythonic方法分割列表?,list,split,python,List,Split,Python,可能重复: 我有如下功能: def split_list(self,my_list,num): ..... ..... 我的清单是: my_list = [['1','one'],['2','two'],['3','three'],['4','four'],['5','five'],['6','six'],['7','seven'],['8','eight']] 我想按给定的数值拆分列表: i、 如果num=3,则为e 然后输出将是:[['1','1','2

可能重复:

我有如下功能:

def split_list(self,my_list,num):    
    .....    
    .....
我的清单是:

my_list = [['1','one'],['2','two'],['3','three'],['4','four'],['5','five'],['6','six'],['7','seven'],['8','eight']]
我想按给定的数值拆分列表:

i、 如果num=3,则为e 然后输出将是:
[['1','1','2','2',['3','3']],[['4','4','4'],['5','5'],['6','6'],[['7','7','7',['8','8']

如果num=4,则

[[['1','one'],['2','two'],['3','three'],['4','four']],[['5','five'],['6','six'],['7','seven'],['8','eight']]]
以下是在交互式shell中运行此命令的摘录:

>>> def split_list(lst, num):
...     def splitter(lst, num):
...         while lst:
...             head = lst[:num]
...             lst = lst[num:]
...             yield head
...     return list(splitter(lst, num))
...
>>> split_list(range(10), 3)
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]

我只需要使用列表理解/生成器:

[my_list[x:x+num] for x in range(0, len(my_list), num)]

试着读一下:

@DrTyrsa:那是不同的。这里指定了块大小,这里是块的数量。@Felix Kling:不,这是完全重复的。@Felix Kling我看到两个块用于
num=4
。你呢?@Tyrsa博士:我道歉。我不知怎么被这两个元素列表搞糊涂了。。。
[my_list[x:x+num] for x in range(0, len(my_list), num)]