我有一个python列表,它可以运行到1000。类似于:
data=["I","am","a","python","programmer".....]
其中,len(data)=比如1003
现在我想通过将原始列表分成100个块来创建这个列表(数据)的子集。所以,最后,我想说:
data_chunk1=[.....] #first 100 items of list data
data_chunk2=[.....] #second 100 items of list data
.
.
.
data_chunk11=[.....] # remainder of the entries,& its len <=100, len(data_chunk_11)=3
有没有一种Python式的方法来完成这项任务?显然,我可以使用数据[0:100]等等,但我认为这是非常非Python和非常低效的。
非常感谢。
实际上,我认为在这种情况下,使用普通切片是最好的解决方案:
如果要避免复制切片,可以使用
itertools.islice()
,但这里似乎不需要。itertools()
文档还包含著名的“grouper”模式:您需要修改它以正确地处理最后一个块,所以我认为使用普通切片的直接解决方案更可取。
这相当于接受的答案。例如,为了可读性,缩短到10批:
输出:
我想说
如果您使用的是python 2.x而不是3.x,那么可以通过使用
xrange()
,将上面的代码更改为:相关问题 更多 >
编程相关推荐