gpt4 book ai didi

python 'list indices must be integers, not tuple"

转载 作者:IT老高 更新时间:2023-10-28 21:50:40 25 4
gpt4 key购买 nike

这两天我一直在努力解决这个问题。我是 python 和编程的新手,所以此类错误的其他示例对我没有太大帮助。我正在阅读列表和元组的文档,但没有找到任何有用的东西。任何指针将不胜感激。不一定要寻找答案,只是寻找更多资源。我正在使用 Python 2.7.6。谢谢

measure = raw_input("How would you like to measure the coins? Enter 1 for grams 2 for pounds.  ")

coin_args = [
["pennies", '2.5', '50.0', '.01']
["nickles", '5.0', '40.0', '.05']
["dimes", '2.268', '50.0', '.1']
["quarters", '5.67', '40.0', '.25']
]

if measure == 2:
for coin, coin_weight, rolls, worth in coin_args:
print "Enter the weight of your %s" % (coin)
weight = float(raw_input())
convert2grams = weight * 453.592

num_coin = convert2grams / (float(coin_weight))
num_roll = round(num_coin / (float(rolls)))
amount = round(num_coin * (float(worth)), 2)

print "You have %d %s, worth $ %d, and will need %d rolls." % (num_coin, coin, amount, num_roll)

else:
for coin, coin_weight, rolls, worth in coin_args:
print "Enter the weight of your %s" % (coin)
weight = float(raw_input())

num_coin = weight / (float(coin_weight))
num_roll = round(num_coin / (float(rolls)))
amount = round(num_coin * (float(worth)), 2)

print "You have %d %s, worth $ %d, and will need %d rolls." % (num_coin, coin, amount, num_roll)

这是堆栈跟踪:

File ".\coin_estimator_by_weight.py", line 5, in <module>
["nickles", '5.0', '40.0', '.05']
TypeError: list indices must be integers, not tuple

最佳答案

问题是python中的[...]有两个不同的含义

  1. expr [ index ] 表示访问列表的元素
  2. [ expr1, expr2, expr3 ] 表示从三个表达式构建一个包含三个元素的列表

在您的代码中,您忘记了外部列表中项目的表达式之间的逗号:

[ [a, b, c] [d, e, f] [g, h, i] ]

因此,Python 将第二个元素的开头解释为要应用于第一个元素的索引,这就是错误消息的含义。

您正在寻找的正确语法是

[ [a, b, c], [d, e, f], [g, h, i] ]

关于 python 'list indices must be integers, not tuple",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21662532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com