说我有:
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列值。所以,我需要来自11
的{{1}}。我该怎么做?
答案 0 :(得分:3)
H = [a, b, c]
右?如果是,那么回答:
1)
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
<强> UPD:强>
另一个例子显示了迭代数组,它们的行和元素:
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
答案 1 :(得分:1)
怎么样:
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
答案 2 :(得分:0)
很难理解你想要做什么。
根据我的理解,虽然你试图遍历H然后想到构成它的数组。
为此,您可以执行类似
的操作for array in H:
for sub_array in array:
# do stuff
否则,如果您希望H [1]访问[1]中的信息,而H [3]访问b [1]中的信息,则可以展平列表。有两种方法可以做到这一点
flat_list = sum(H, [])
或
import itertools
for sub_array in itertools.chain(H):
# do stuff