TypeError:“浮动”对象不可下标

Posted

技术标签:

【中文标题】TypeError:“浮动”对象不可下标【英文标题】:TypeError: 'float' object is not subscriptable 【发布时间】:2013-11-28 06:52:02 【问题描述】:
PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))      
PriceList[0][1][2][3][4][5][6]=[PizzaChange]  
PriceList[7][8][9][10][11]=[PizzaChange+3]

基本上我有一个输入,用户将输入一个数字值(浮点输入),然后它将所有上述列表索引设置为该值。出于某种原因,我无法在没有提出以下建议的情况下设置它们:

TypeError: 'float' object is not subscriptable

错误。我做错了什么还是我只是看错了?

【问题讨论】:

哪一行产生了错误? 我得到同样的错误:TypeError: 'float' object is not subscriptable 在这一行:print("%s: %.2f%%" % (model.metrics_names[0], scores[0]*100)) 从这段代码:machinelearningmastery.com/… 怎么了?? 【参考方案1】:

您没有使用 PriceList[0][1][2][3][4][5][6] 选择多个索引,而是每个 [] 都进入一个子索引。

试试这个

PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))      
PriceList[0:7]=[PizzaChange]*7  
PriceList[7:11]=[PizzaChange+3]*4

【讨论】:

这个问题是它只用一个值替换那些索引。例如,当我在输入 List=[3,3,3,3, 3,3,3,7,8,9,10,11]. 看我上面的编辑,乘以你要替换的项目数【参考方案2】:

PriceList[0] 是一个浮点数。 PriceList[0][1] 正在尝试访问浮点数的第一个元素。相反,做

PriceList[0] = PriceList[1] = ...code omitted... = PriceList[6] = PizzaChange

PriceList[0:7] = [PizzaChange]*7

【讨论】:

从 0 到 7 的切片有 7 个元素,而不是 6 个。 非常感谢各位先生。【参考方案3】:
PriceList[0][1][2][3][4][5][6]

这说:转到我收藏的第一项PriceList。那东西是一个集合;得到它的第二个项目。那东西是一个集合;获得它的第三个...

相反,您想要切片

PriceList[:7] = [PizzaChange]*7

【讨论】:

【参考方案4】:
PizzaChange=float(input("What would you like the new price for all standard pizzas to be? "))      
for i,price in enumerate(PriceList):
  PriceList[i] = PizzaChange + 3*int(i>=7)

【讨论】:

【参考方案5】:

您似乎正在尝试将 PriceList 的元素 0 到 11 设置为新值。语法通常如下所示:

prompt = "What would you like the new price for all standard pizzas to be? "
PizzaChange = float(input(prompt))
for i in [0, 1, 2, 3, 4, 5, 6]: PriceList[i] = PizzaChange
for i in [7, 8, 9, 10, 11]: PriceList[i] = PizzaChange + 3

如果它们总是连续的范围,那么写起来就更简单了:

prompt = "What would you like the new price for all standard pizzas to be? "
PizzaChange = float(input(prompt))
for i in range(0, 7): PriceList[i] = PizzaChange
for i in range(7, 12): PriceList[i] = PizzaChange + 3

供参考,PriceList[0][1][2][3][4][5][6]指的是“元素6的元素5的元素4的元素3的元素2的元素1的元素0的PriceList。换句话说,它与((((((PriceList[0])[1])[2])[3])[4])[5])[6]相同。

【讨论】:

以上是关于TypeError:“浮动”对象不可下标的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib:TypeError:'AxesSubplot'对象不可下标[重复]

Anvil 错误:TypeError:“NoneType”对象不可下标

Spotipy:尝试访问播放列表时,“TypeError:'NoneType' 对象不可下标”

BeautifulSoup:TypeError:“NoneType”对象不可下标

自定义事件:TypeError:“NoneType”对象不可下标

TypeError:“datetime.date”对象不可下标