【发布时间】:2013-11-30 22:14:56
【问题描述】:
我遇到了以下错误,我不知道为什么。
IndexError: string index out of range
以前我在 for 循环中使用它,只是假设我是个白痴,但我开始认为 Python 根本无法处理我的要求。
这是错误指示的特定行:
print(location[5][1][0])
这里是它引用的列表:
location = ec
ec = (5,3, "Trader Outpost", plain_mobs, store, trader_outpost)
trader_outpost = [filler,sword,shield,amulet]
sword = ["Sword ", 0, 0, 0, 5, 0, 20, "Sword"]
我应该发生的是 Python...
- 采用
location[5],即列表trader_outpost, - 然后从
trader_outpost获取索引1,也就是列表sword - 然后从
sword获取索引0,也就是字符串"sword"
这样的列表是不可能的吗?
编辑:我的主要问题已经找到:我的一个变量没有正确地通过函数
已解决:我发现我的代码部分错误。我将location[2] 作为函数的参数之一。这会将"Trader Outpost" 传递给我遇到问题的那个而不是列表。
【问题讨论】:
-
尝试打印出
location,然后是location[5],然后是location[5][1],然后是location[5][1][0],看看每个是什么。其中之一可能不是你想象的那样。 -
你看起来真的需要一个 python 字典。
-
@Dunno 如果没有上下文,那条评论可能会显得很粗鲁:)
-
@LevLevitsky 呵呵,没错,我编辑了它。