本问题已经有最佳答案,请猛点这里访问。
与列表扁平化相反。
给定一个列表和一个长度n返回一个长度n子列表的列表。
def sublist(lst, n):
sub=[] ; result=[]
for i in lst:
sub+=[i]
if len(sub)==n: result+=[sub] ; sub=[]
if sub: result+=[sub]
return result
一个例子:
如果列表是:
[1,2,3,4,5,6,7,8]
n是:
3
返回:
[[1, 2, 3], [4, 5, 6], [7, 8]]
有更雄辩/简洁的方式吗?
除此之外,将列表附加到列表时首选的内容(在上面的上下文中):
list1+=[list2]
或:
list1.append(list2)
考虑到这一点(根据SummerFeild的"Python3编程"),它们是相同的?
谢谢。
这样的列表列表可以使用列表理解来构建:
In [17]: seq=[1,2,3,4,5,6,7,8]
In [18]: [seq[i:i+3] for i in range(0,len(seq),3)]
Out[18]: [[1, 2, 3], [4, 5, 6], [7, 8]]
还有Grouper成语: