繁体   English   中英

简单嵌套的for循环中的索引函数不

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM