假设 arr 是这样的 jugged 数组(如果需要,列表列表):
arr = [[10], [12, 3], [33, 22, 2], [2], ...]
每一行的大小和列表的数量都未知。
如何打印索引和值来动态获取行的大小?例如,如何迭代以打印 arr[2][0] = 33?
第一次尝试:
for value in arr:
i = 0
j = 0
if isinstance(value, list):
for other in value:
print("a[%s][%s] = %s" % (i, j, other))
i += 1
j += 1
每个新行都以索引 [0][0] 开头。值 12 应该是 [1][0]
a[0][0] = 10
a[0][0] = 12
a[1][1] = 3
...
第二次尝试。第一行偏移 1。值 10 应带有索引 [0][0]
i = 0
for value in arr1:
i += 1
for j in range(0, len(value)):
print("a[%s][%s] = %s" % (i, j, value[j]))
结果:
a[1][0] = 10
a[2][0] = 12
a[2][1] = 3
请您参考如下方法:
使用enumerate .
jagged = [[1], [2, 3], [4, 5, 6]]
for i, sub_list in enumerate(jagged):
for j, value in enumerate(sub_list):
print 'a[{}][{}] = {}'.format(i, j, value)
# a[0][0] = 1
# a[1][0] = 2
# a[1][1] = 3
# a[2][0] = 4
# a[2][1] = 5
# a[2][2] = 6
