forループ中での3次元配列への数字の挿入と条件分岐について
forループ中での3次元配列への数字の挿入と条件分岐で困っています。
li1[i][j][k]の数字とli2[l][1]が一致した際に、li2[l][0]とli2[l][2]を、li1の中のli2[l][1]の前後に挿入したいと考えています。
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]]]
最終的な結果として3次元配列のresultを導出したいと考えています。
上の結果ですと7や8などが3回連続してしまっていたり、下のresultと全く異なった結果となってしまっている状況です。
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]]]
別の書き方でも全く問題ないです。よろしくお願いします。