我遇到以下错误的问题,我不明白为什么。
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"
传递给我遇到问题的那个而不是列表。
答案 0 :(得分:1)
您的说明是否以正确的顺序?这对我来说很好:
filler, sword, shield, amulet = 'f', 's', 'h', 'a'
plain_mobs, store = 'pm', 'st'
sword = ["Sword " ,0 ,0 ,0 ,5 ,0 ,20 ,"Sword"]
trader_outpost = [filler,sword,shield,amulet]
ec = (5,3, "Trader Outpost" ,plain_mobs ,store ,trader_outpost)
location = ec
print(location[5][1][0])
=> Sword
所以是的,如果索引可以访问遇到的每个元素,则可以同时拥有3个索引。