[英]Index function in a simple nested for loop not
因此,这是我正在使用的非常基本的代码,它是一个以元组元组形式使用网格的函数。 在循环中,我尝试为网格设置i行和q列。
def myfunc(grid):
for i in (grid):
for q in i:
print("i.index(q): ", i.index(q), " grid.index(i)", grid.index(i))
return True
myfunc(((1, 0, 0, 1, 0),
(0, 1, 0, 0, 0),
(0, 0, 1, 0, 1),
(1, 0, 0, 0, 0),
(0, 0, 1, 0, 0)))
这是我得到的:
i.index(q): 0 grid.index(i) 0
i.index(q): 1 grid.index(i) 0
i.index(q): 1 grid.index(i) 0
i.index(q): 0 grid.index(i) 0
i.index(q): 1 grid.index(i) 0
i.index(q): 0 grid.index(i) 1
i.index(q): 1 grid.index(i) 1
i.index(q): 0 grid.index(i) 1
i.index(q): 0 grid.index(i) 1
i.index(q): 0 grid.index(i) 1
i.index(q): 0 grid.index(i) 2
i.index(q): 0 grid.index(i) 2
等等。
我期望并想要为i.index(q)
得到i.index(q)
,...,我没有正确使用此函数吗? 这似乎很奇怪,因为grid.index(i)
工作正常,当我for q in i:
循环中的for q in i:
打印q时,我得到了正确的值。
任何帮助表示赞赏!
您正在完美地使用它们。 但是它们不是您要使用的。
def myfunc(grid):
for (i, row) in enumerate(grid):
for (j, el) in enumerate(row):
print('{},{}'.format(i, j))
tuple.index
返回给定元素首次出现的索引:
In [1]: tuple.index?
Docstring:
T.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
Type: method_descriptor
为了遍历元素及其索引,应使用enumerate
函数:
In [2]: def myfunc(grid):
...: for i, row in enumerate(grid):
...: for j, elem in enumerate(row):
...: print('Row #{}, elem #{}, value: {}'.format(i, j, elem))
In [3]: myfunc(((1, 0, 0, 1, 0),
...: (0, 1, 0, 0, 0),
...: (0, 0, 1, 0, 1),
...: (1, 0, 0, 0, 0),
...: (0, 0, 1, 0, 0)))
Row #0, elem #0, value: 1
Row #0, elem #1, value: 0
Row #0, elem #2, value: 0
Row #0, elem #3, value: 1
Row #0, elem #4, value: 0
Row #1, elem #0, value: 0
Row #1, elem #1, value: 1
Row #1, elem #2, value: 0
Row #1, elem #3, value: 0
Row #1, elem #4, value: 0
Row #2, elem #0, value: 0
Row #2, elem #1, value: 0
Row #2, elem #2, value: 1
Row #2, elem #3, value: 0
Row #2, elem #4, value: 1
Row #3, elem #0, value: 1
Row #3, elem #1, value: 0
Row #3, elem #2, value: 0
Row #3, elem #3, value: 0
Row #3, elem #4, value: 0
Row #4, elem #0, value: 0
Row #4, elem #1, value: 0
Row #4, elem #2, value: 1
Row #4, elem #3, value: 0
Row #4, elem #4, value: 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.