这段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
这段代码 mids[int(idx*chunk):int((idx*chunk)+chunk)]
是在从一个列表中获取一部分数据。冒号左边的数字表示开始的位置,右边的数字表示结束的位置。所以它的格式是: list[start:end]
。
0
它从mids中提取一部分元素,开始的位置是idx乘以chunk,然后把这些元素放到curids里。
2
这段代码的作用是把一些叫做 mids
的数据分成几个块,每个块包含 chunk
个元素。
如果你把循环改成打印 int(idx*chunk)
和 int((idx*chunk)+chunk)
的值,你就能看到这些块的具体内容。
举个例子,如果 len(mids)==50
(也就是 mids
有50个元素)并且 chunk==12
,那么打印出来的索引会是:
0 12
12 24
24 36
36 48
48 60
这些索引代表了每一块 mids
的开始和结束位置(开始的索引是包括在内的,而结束的索引是不包括的)。
需要注意的是,最后一个值可以超过 len(mids)
,但这没关系,因为 Python 的切片规则是这样的(它会自动切到 mids
的最后一个元素)。