在 Python 中对列表索引进行操作时出现 TypeError

TypeError while operating on list indices in Python

提问人:Lost1 提问时间:8/5/2023 最后编辑:Goku - stands with PalestineLost1 更新时间:8/7/2023 访问量:50

问:

我有以下代码:

(len(parameters) / 2

上面的代码返回了错误:

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

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

我认为整数在 python 中具有精确的表示形式,因此 len(a)/2 应始终返回一个 int。

欢迎任何帮助。

python-3.x 列表 类型错误 切片

评论


答:

1赞 doneforaiur 8/5/2023 #1

即使 能被 2 整除而没有余数,也会返回 .用于将其转换为 .parameterslen(parameters)/2floatlen(parameters)//2int

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

评论

0赞 Goku - stands with Palestine 8/5/2023
恭喜你获得第一枚金牌!
1赞 doneforaiur 8/5/2023
@TalhaTayyab Ayyyy,谢谢你。
1赞 Goku - stands with Palestine 8/5/2023
别客气。。继续加油!!
1赞 Goku - stands with Palestine 8/5/2023 #2

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

它始终返回一个浮点数。

你应该做integer division //

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

4/2

2.0

4//2

2

评论

0赞 Lost1 8/6/2023
从 Python 2 到 Python 的约定是否有变化/或者我是幻觉?
0赞 doneforaiur 8/6/2023
@Lost1 是的,在 Python 2 中,如果你将两个 int 除以,无论余数如何,你都会得到一个 int。