访问数组的行,在数组的内部?

2024-04-26 19:08:23 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有:

H = [array(a), array(b), array(c)...]

a = [[1,2,3,4,5,6],
     [11,22,33,44,55,66], #row 1 of H[0]
     [111,222,333,444,555,666]]
b = [[7,8,9,0,1,2],
     [77,88,99,00,11,22],
     [777,888,999,000,111,222]]
c = ...

我想访问H[0]的第1行,但接着继续访问H[1]内的行,以此类推。

我的问题:

1)如何调用H[0]的第1行?

2)在遍历H[0]中的所有行之后,如何循环运行到H[1]?

我知道我需要像

for i in range(len(H)):
    do stuff to rows until the last row in H[i]
    move onto H[i+1]
    do same stuff
    stop when (criteria here reached)

感谢大家的帮助。谢谢您。

编辑:我现在知道我可以通过H[0][1]访问它,但实际上我需要数组的每一行中的第0列值。所以,我需要H[0][1]中的11。我该怎么做?


Tags: ofthetoinformovelenrange
3条回答

怎么办:

for array in H:
    for row in array:
        # do stuff

当当前数组完成时,此循环自动移动到下一个数组。

如果需要数组的索引,请执行以下操作:

for array in H:
    for i, row in enumerate(array):
        for j, value in enumerate(row):
            # do stuff
H = [a, b, c]

对吧?如果是,则回答:

(一)

H[0][1]  # 0 - "a" array; 1 - row with index 1 in "a"

2个)

for arr in H:  # for array in H: a,b,c,...
    for row in arr:  # for row in current array
        # do stuff here

升级版:

另一个示例显示了遍历数组、数组的行和元素:

a = [[1, 2],
     [3, 4]]
b = [[5, 6],
     [7, 8]]


H = [a, b]

for arr_i, arr in enumerate(H):
    print('array {}'.format(arr_i))

    for row_i, row in enumerate(arr):
        print('\trow {}'.format(row_i))

        for el in row:
            print('\t{}'.format(el))

输出:

array 0
    row 0
    1
    2
    row 1
    3
    4
array 1
    row 0
    5
    6
    row 1
    7
    8

很难理解你想做什么。

根据我的理解,虽然你试图通过H循环,然后思考组成它的数组。

你可以做些

for array in H:
    for sub_array in array:
        # do stuff

否则,如果您希望H[1]访问a[1]中的信息,而希望H[3]访问b[1]中的信息,则可以展平列表。有两种方法

flat_list = sum(H, [])

或者

import itertools
for sub_array in itertools.chain(H):
    # do stuff

相关问题 更多 >