在 Python 中操作列表索引时出现类型错误

问题描述 投票:0回答:2

我有以下代码:

(len(parameters) / 2

上面的代码返回错误:

TypeError: slice indices must be integers or None or have an __index__ method

为什么会这样——尤其是我给出的向量的长度是一个能被2整除的int(事实上,我检查了这一点)?

我认为整数在Python中有精确的表示,所以len(a)/2应该总是返回一个int。

欢迎就此事提供任何帮助。

python list typeerror slice
2个回答
1
投票

len(a)/2
是楼层划分。

它总是返回一个浮点数。

你应该这样做

integer division //

parameters[: (len(parameters) // 2)] 

示例

4/2

2.0

4//2

2

1
投票

即使

parameters
可以被 2 整除而没有余数,
len(parameters)/2
也将返回
float
。使用
len(parameters)//2
将其转换为
int

欲了解更多信息; 数字类型

© www.soinside.com 2019 - 2024. All rights reserved.