我正在试图了解这里发生了什么,特别是如何设置curids:
for idx in xrange(0, int(math.ceil(float(len(mids))/chunk))):
curids = mids[int(idx*chunk):int((idx*chunk)+chunk)]
我不确定mids[int(idx*chunk):int((idx*chunk)+chunk)]
的语法是什么。
答案 0 :(得分:2)
它将mids
的块提取到curids
,其中每个块由chunk
个元素组成。
如果您更改循环以打印出int(idx*chunk)
和int((idx*chunk)+chunk)]
的值,您将自己看到。
例如,如果len(mids)==50
和chunk==12
,将要打印的索引是:
0 12
12 24
24 36
36 48
48 60
这些是mids
每个切片的起始和结束索引(起始索引是包含的,而结束索引不是)。
请注意,允许最后一个值超过len(mids)
,但考虑到Python slicing的工作原理(它只会切到mids
的末尾),这不是问题。< / p>
答案 1 :(得分:0)
它从idx * chunk开始的mids中提取大量元素,并将它们放入curids中。
答案 2 :(得分:0)
代码mids[int(idx*chunk):int((idx*chunk)+chunk)]
正在获取列表的子集。 :左边的结果int是列表中的起始位置,右边的int是结束位置。格式为:list[start:end]
答案 3 :(得分:0)
那么,就我所知,循环将mids列表拆分为块,块和curids的大小正在归于那些块。因此,例如,如果mids是20个值列表并且chunk是4,curids将归因于值mids [0:4],mids [4:8],.. mids [16:20],基本上将列表拆分为5