Skip to main content
 首页 » 编程设计

python之在 Python 中遍历锯齿状数组值和索引

2025年05月04日14linjiqin

假设 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