Python列表支持浮点吗?什么时候需要整数而float不能?

Python列表支持浮点吗?什么时候需要整数而float不能?,python,python-3.x,Python,Python 3.x,我的赋值代码可以很好地处理整数,但我意识到它不能接受十进制和货币值,因为价格有小数。我认为我可以很容易地将所有int输入更改为float输入,因此得到了这个错误消息。 TypeError:列表索引必须是整数或片,而不是浮点 例如,代码片段是: electronics = [ ["Sony cam","camera",199],["MS mouse","computer",299], ["ABC speakers","speaker",399]] editinput = input("Select

我的赋值代码可以很好地处理整数,但我意识到它不能接受十进制和货币值,因为价格有小数。我认为我可以很容易地将所有int输入更改为float输入,因此得到了这个错误消息。 TypeError:列表索引必须是整数或片,而不是浮点

例如,代码片段是:

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 一个float不能,不再是真的,因为list append, 而编辑正是int是必需的,而float则不能

  • 参考:文章编号:20452189-“为什么我应该使用整数而不是浮点数?”

    列表索引必须是从0到n-1的整数,其中n是列表的长度。它还允许范围内的负索引以反向访问元素

    列表正好存储n个项目,我们只需要这些整数范围就可以访问存储的数据


    如果给定1.0,则始终可以使用int()将其强制转换为int,但如果以浮点结尾,则应该问这样一个问题:为什么以浮点结尾来访问数据。从某种意义上说,编程不仅仅是数学,我们希望做一些阻止bug的事情

    谈论清单中的第2.59项有意义吗?要将浮动映射到其他对象,可以使用字典。是的,它们只能是整数(正整数)。1b。根据需要,浮点和整数有不同的用途。具体计算通常使用浮点或双精度。intI不了解的任何其他内容,您(例如)希望通过电子产品[5.5][2]实现什么目标,您希望访问列表中的哪个元素?列表只包含一些东西。这些都是可以计算的。比如1,2,3。清单中的3.5条对你来说意味着什么?还有,回答你的问题。Python列表确实支持浮点。您可以将浮动添加到列表中:[1.1、2.3、5.5]等。
    editindex
    中使用的
    […,]
    是一个索引,是列表中的一个位置。它必须是一个整数。该位置的项可以是任何内容—数字、字符串、其他列表等。您似乎混淆了值和索引。