我有一个二维列表,对于列表中的每个列表,我想打印其索引,并且对于每个列表中的每个元素,我还要打印其索引。这是我试过的:
l = [[0,0,0],[0,1,1],[1,0,0]]
def Printme(arg1, arg2):
print arg1, arg2
for i in l:
for j in i:
Printme(l.index(i), l.index(j))
但输出是:
0 0 # I was expecting: 0 0
0 0 # 0 1
0 0 # 0 2
1 0 # 1 0
1 1 # 1 1
1 1 # 1 2
2 0 # 2 0
2 1 # 2 1
2 1 # 2 2
为什么?我怎样才能做到我想要的呢?
答案 0 :(得分:1)
list.index
的帮助:
L.index(value,[start,[stop]]) - >整数 - 返回第一个索引 值。如果值不存在,则引发ValueError。
您应该在这里使用enumerate()
:
>>> l = [[0,0,0],[0,1,1],[1,0,0]]
for i, x in enumerate(l):
for j, y in enumerate(x):
print i,j,'-->',y
...
0 0 --> 0
0 1 --> 0
0 2 --> 0
1 0 --> 0
1 1 --> 1
1 2 --> 1
2 0 --> 1
2 1 --> 0
2 2 --> 0
enumerate
上的帮助:
>>> print enumerate.__doc__
enumerate(iterable[, start]) -> iterator for index, value of iterable
Return an enumerate object. iterable must be another object that supports
iteration. The enumerate object yields pairs containing a count (from
start, which defaults to zero) and a value yielded by the iterable argument.
enumerate is useful for obtaining an indexed list:
(0, seq[0]), (1, seq[1]), (2, seq[2]), ...
答案 1 :(得分:0)
.index(i)
为您提供i
的第一次出现的索引。因此,您总能找到相同的索引。