首页 > 解决方案 > 在python中增加内循环的索引和更新外循环的索引

问题描述

如何在内部循环中附加数据时更改二维列表的索引,并在最外层循环的迭代完成后更新索引?

item_list =['data1','data2','data3','data4','data1', 'data6','data7','data9','data10','data11','data12']

item_list_2 = ['data1','data2','data3','data4']

item_list_3 = ['data1','data2','data3','data3','data5','data3','data7','data8','data9','data3','data11','data12']
Data_table_array = []
for index, items in enumerate(item_list):
  if items == 'data1':
    for item2 in item_list_2:
        Data_table_array[index].append(item2)
    for item3 in item_list_3:
       if item3 == 'data3':
         Data_table_array[index].append(item3)
                                    
        

预期输出

Data_table_array = ['data1','data2','data3','data4','data1','data2','data3','data4','data3']

对于内部循环索引保持不变,它仅在循环进入外部循环时发生变化。由于内部循环有不同的条件,如果条件为真,我想缩进索引,但实际上编译器将数据附加到同一索引上,因为索引没有改变

标签: pythonpython-3.xlist

解决方案


你可以尝试这样做:

  1. 使用您想要的最新更新索引存储变量
  2. 当下一次迭代发生在外循环中时,检查循环的索引是否与存储的变量匹配。

例如:

foo = ['a', 'b', 'c', 'd', 'e']
latest_index = ''
checker = True
    
for i, elem in enumerate(foo):
    if elem == latest_index:
        checker = True
    if checker:
        print(elem)
        if i < len(foo) - 1:
            latest_index = foo[i+1]
        checker = False

推荐阅读