forループ中での3次元配列への数字の挿入と条件分岐について


forループ中での3次元配列への数字の挿入と条件分岐で困っています。

li1[i][j][k]の数字とli2[l][1]が一致した際に、li2[l][0]とli2[l][2]を、li1の中のli2[l][1]の前後に挿入したいと考えています。

[code]

    li1=[[[0, 1, 10], [0, 2, 10]], 
     [[0, 1, 3, 5, 10], [0, 1, 3, 6, 10], [0, 1, 4, 5, 10], [0, 1, 4, 6, 10], [0, 2, 3, 5, 10], [0, 2, 3, 6, 10], [0, 2, 4, 5, 10], [0, 2, 4, 6, 10]]]
    
    li2=[[7,1,8], [9,2,11], [12,3,13], [14,4,15], [16,5,17], [18,6,19]]
    
    for i in range(len(li1)):
        for j in range(len(li1[i])):
            for k in range(1,len(li1[i][j])-1):
                for l in range(len(li2)):#
                    if li1[i][j][k]==li2[l][1]:
                        li1[i][j].insert(k,li2[l][0])
                        li1[i][j].insert(k+2,li2[l][2])
    
    
    print(li1)
    
    
    >>> 
    [[[0, 7, 1, 8, 10], [0, 9, 2, 11, 10]], 
     [[0, 7, 7, 7, 1, 8, 8, 8, 3, 5, 10], [0, 7, 7, 7, 1, 8, 8, 8, 3, 6, 10], [0, 7, 7, 7, 1, 8, 8, 8, 4, 5, 10], [0, 7, 7, 7, 1, 8, 8, 8, 4, 6, 10], [0, 9, 9, 9, 2, 11, 11, 11, 3, 5, 10], [0, 9, 9, 9, 2, 11, 11, 11, 3, 6, 10], [0, 9, 9, 9, 2, 11, 11, 11, 4, 5, 10], [0, 9, 9, 9, 2, 11, 11, 11, 4, 6, 10]]]
    
[/code]

最終的な結果として3次元配列のresultを導出したいと考えています。  
上の結果ですと7や8などが3回連続してしまっていたり、下のresultと全く異なった結果となってしまっている状況です。

[code]

    result=[[[0,7,1,8,10],[0,9,2,11,10]],
        [[0,7,1,8,12,3,13,18,6,19,10],[0,7,1,8,12,3,13,18,6,19,10],[0,7,1,8,14,4,15,16,5,17,10], [0,7,1,8,14,4,15,18,6,19,10], [0, 2, 3, 5,10], [0,9,2,11,12,3,13,18,6,19,10], [0,9,2,11,14,4,15,16,5,17,10], [0,9,2,11,14,4,15,18,6,19,10]]]
    
[/code]

別の書き方でも全く問題ないです。よろしくお願いします。




`insert()` によって `li1[i][j]` の長さが変化してしまいますので、`k`
をインデックスとして使うとおかしな事になってしまいます。別の変数(`m`)をインデックスとして使う様に変更します。

[code]

    for i in range(len(li1)):
      for j in range(len(li1[i])):
        m = 0
        for k in range(1,len(li1[i][j])-1):
          m += 1 
          for l in range(len(li2)):
            if li1[i][j][m]==li2[l][1]:
              li1[i][j].insert(m,li2[l][0])
              li1[i][j].insert(m+2,li2[l][2])
              m += 2
    
[/code]

