Python 2.7当前行索引在2d数组迭代

时间:2017-05-10 05:59:32

标签: python-2.7 multidimensional-array

在二维数组上进行迭代时,如何获取当前行索引?例如:

x = [[ 1.  2.  3.  4.]
     [ 5.  6.  7.  8.]
     [ 9.  0.  3.  6.]]

类似的东西:

for rows in x:
   print x current index (for example, when iterating on [ 5.  6.  7.  8.], return 1)

2 个答案:

答案 0 :(得分:0)

enumerate

    In [42]: x = [[ 1,  2,  3,  4],
    ...:          [ 5,  6,  7,  8],
    ...:          [ 9,  0,  3,  6]]

In [43]: for index, rows in enumerate(x):
    ...:     print('current index {}'.format(index))
    ...:     print('current row {}'.format(rows))
    ...:
current index 0
current row [1, 2, 3, 4]
current index 1
current row [5, 6, 7, 8]
current index 2
current row [9, 0, 3, 6]

答案 1 :(得分:0)

枚举是Python的内置函数。它的用处不能总结为一行。然而,大多数新手甚至一些高级程序员都没有意识到这一点。它允许我们循环某些东西并拥有一个自动计数器。这是一个例子:

for counter, value in enumerate(some_list):
    print(counter, value)

还有更多! enumerate还接受一个可选参数,使其更有用。

my_list = ['apple', 'banana', 'grapes', 'pear']
for c, value in enumerate(my_list, 1):
    print(c, value)

# Output:
# 1 apple
# 2 banana
# 3 grapes
# 4 pear

可选参数允许我们告诉枚举从哪里开始索引。您还可以使用列表创建包含索引和列表项的元组。这是一个例子:

my_list = ['apple', 'banana', 'grapes', 'pear']
counter_list = list(enumerate(my_list, 1))
print(counter_list)

# Output: [(1, 'apple'), (2, 'banana'), (3, 'grapes'), (4, 'pear')]