列表范围被视为元组而不是整数

时间:2014-12-22 12:19:31

标签: python list tuples

我正在尝试按照以下代码从列表中获取元素:

"数据"是一个字符串,包含一些数据,我从中取出开始和结束偏移的值。 然后我将开始和结束偏移量乘以4来计算start,endOffsetAsPerPage

startOffset = data.split(",,")[1].split(":")[1];
endOffset = data.split(",,")[2].split(":")[1];
startOffsetAsPerPage = int(startOffset)*4;
endOffsetAsPerPage = int (endOffset)*4;  
FilteredData = CassandraData[int(startOffsetAsPerPage),int(endOffsetAsPerPage)];

执行时,我面临以下错误:

Traceback (most recent call last):
  File "CassandraDataAPIResultValidator.py", line 55, in <module>
    FilteredData = CassandraData[int(startOffsetAsPerPage),int(endOffsetAsPerPage)];
TypeError: list indices must be integers, not tuple

你能帮忙吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您使用的是逗号:

FilteredData = CassandraData[int(startOffsetAsPerPage),int(endOffsetAsPerPage)]
#                                                     ^

逗号会使它成为一个元组,而不是一个切片。

改为使用冒号

FilteredData = CassandraData[int(startOffsetAsPerPage):int(endOffsetAsPerPage)]
#                                                     ^

请注意,Python不需要在行的末尾使用分号。