python中的这段代码段是什么意思?

时间:2011-09-29 06:39:08

标签: python

我正在试图了解这里发生了什么,特别是如何设置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)]的语法是什么。

4 个答案:

答案 0 :(得分:2)

它将mids的块提取到curids,其中每个块由chunk个元素组成。

如果您更改循环以打印出int(idx*chunk)int((idx*chunk)+chunk)]的值,您将自己看到。

例如,如果len(mids)==50chunk==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