看起来像这样有点复杂,但我想要的应该很简单.我有一个Python列表.
让我们说 list = [[A, B, C], [D, B], [E], [X, Y, Z]]
我想按照我尝试的某个顺序迭代每个内部列表的元素
for i in range(0, 10):
for item in list[i]:
<do action on item>
Run Code Online (Sandbox Code Playgroud)
但我从Python指向的语法错误list[i],似乎不太喜欢它.
编辑:我想一次遍历一个内部列表例如:
for i in range(0, 1):
print i
for item in list[i] #or something that works..
print item
Run Code Online (Sandbox Code Playgroud)
会打印
0
A
B
C
1
D
B
Run Code Online (Sandbox Code Playgroud)
知道为什么这会阻塞吗?
回溯只是说那里有语法错误......
重新编辑:我通过使用其他数据结构解决了我的问题.这有点过于复杂.很抱歉浪费你的时间,但感谢你的提示!
这是因为您的外部列表只有4个元素,因此没有索引4(或5或6等).这就是您收到索引错误的原因.
它类似于:
L = [1,2,3] L [6] #L没有第6个索引Traceback(最近调用最后一个):文件"",第1行,在IndexError中:列表索引超出范围
你应该做的是这样的:
for sub_list in L:
for item in sub_list:
<do action on item>
Run Code Online (Sandbox Code Playgroud)
为了回应您的编辑:
请注意,不要将类型用作变量名.所以不要打电话给你的清单.也许这就是一些不喜欢的地方.
如果错误是"类型不可订阅"的结果,那么这正是您收到错误的原因.您可以通过将名称更改list为其他内容来修复它- 我建议L