我试图找到一个子列表的索引返回与另一个子列表的索引相同的值。当我有重复时,我一直遇到问题,因为它只返回最低的索引。
lines = [ [ 1 , 1], [3, 4] ]
x = 0
while x < (len(lines)-1):
for ch in lines[x]:
print lines[x+1][lines[x].index(ch)]
x += 1
我想获得
的输出3
4
但我正在
3
3
答案 0 :(得分:1)
我想我明白了。在两次迭代中,for循环ch
为1
,因此lines[x].index(ch)
将为1.为什么不以更直接的方式循环遍历第二个:
lines = [ [ 1 , 1], [3, 4] ]
x = 0
y=0
while x < (len(lines)-1):
while y < len(lines[x]):
print lines[x+1][y]
y= y+1
x = x+1
答案 1 :(得分:0)
你应该在while语句中用len(lines)改变你的len(行)-1,因为我认为它不会测试所有的值。
答案 2 :(得分:0)
index()
找到列表中传递元素的第一个出现,因此每当您调用[1,1].index[1]
时,您将始终获得0.
如果您的目标是从列表中的索引a -
中简单地访问列表b的项目a = [1,1]
b = [3,4]
for x in range(0,len(a)):
print b[x]