将具有偶数个条目的列表一分为二是无效索引

我有一个列表,如果它有偶数个值,我想找到两个中间条目的中点。我是这样做的:

    if len(points) % 2 == 0:
        l = (points[len(points)/2][1] + points[len(points)/2 + 1][1])/2

但是,我收到一个错误消息:

TypeError: list indices must be integers or slices, not float


九州编程
浏览 139回答 2
2回答

呼唤远方

与 Python 2 不同,该/运算符在 Python 3 中始终返回一个浮点数,即使操作数都是整数。您应该改用地板除法运算符//,因为列表索引必须是整数:l = (points[len(points) // 2][1] + points[len(points) // 2 + 1][1]) / 2

牛魔王的故事

在 python 3 中,单除法给出浮点数。改用双除法:>>> 4/22.0>>> 4//22
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python