【发布时间】:2019-08-07 02:26:24
【问题描述】:
我的分配代码可以很好地处理整数,但我意识到它不能接受小数,并且价格的货币值有小数。以为我可以轻松地将所有 int 输入更改为 float 输入,我收到了此错误消息。 TypeError:列表索引必须是整数或切片,而不是浮点数
代码sn-p例如:
electronics = [
["Sony cam","camera",199],["MS mouse","computer",299],
["ABC speakers","speaker",399]]
editinput = input("Select a product to edit. \n")
#somehow this cannot be float
editindex = float(editinput)-1
editprice = input("Price SGD $: \t")
# Changing editing an item in a nested list
electronics[editindex][2] = float(editprice)
问题:
- 是否意味着Python列表项“索引”只能是整数 (0,1,2)?
- 这是否也意味着没有什么是 int 的常见论点 可以做到浮动不能做到,不再是真的,因为列表追加, 而 edit 正是需要 int 而 float 不能的地方。
参考:文章编号:20452189 - “为什么我应该使用整数而不是浮点数?”
【问题讨论】:
-
谈论列表中的第 2.59 项有意义吗?要将浮点数映射到其他对象,您可以使用字典。
-
1a。是的,它们只能是整数(正数)。 1b。根据您的需要,浮点数和整数有不同的用途。具体计算通常会使用浮点数或双精度数。其他任何 int
-
我不明白,你想用(例如)电子[5.5][2] 来实现什么,你想访问列表中的哪个元素?一个列表只包含东西。而那些东西是可以计算的。像 1,2,3。列表中的 3.5 项对您来说意味着什么?另外,回答你的问题。 Python 列表确实支持浮点数。您可以将浮点数添加到列表中:[1.1, 2.3, 5.5] 等。
-
editindex在[..,]中使用是一个索引,一个列表中的位置。它必须是一个整数。该位置的项目可以是任何东西 - 数字、字符串、另一个列表等。您似乎混淆了值和索引。
标签: python python-3.x