python - 如何根据特定条件将多维数组python中的嵌套列表替换为另一个列表
问题描述
我正在尝试在特定条件下替换 my_list 中的嵌套列表。在这种情况下,如果它在前一个列表中找到,我想'HB2_DF_en1a'
用第二个列表的元素替换,以此类推''
。第二个列表中的数量''
和元素相同。
my_list = [[[['', ''], ['HB2_DF_en1a', 'HB2_DF_en2a']]],
[[[''], ['XY1_DF_en1a']],
[['Io01[4:2]'], ['XY_DF1']]],
[[['', ''], ['XY2_DF_en1a', 'XY2_DF_en2a']]]]
2nd_list = [['XY1_IPC'],
['cat_lpm'],
['XY_ABC1'],
['XY2_IPC'],
['XY_ABC2', 'XY2_IPC']]
我在尝试 -
b = 0
for i in my_list:
for j in i:
for k in j:
if a == '':
k+1.append(2nd_list[b])
b = b+1
我正在寻找的输出 -
my_list = [[[['', ''], [['XY1_IPC'], ['cat_lpm']]]],
[[[''], ['XY_ABC1']]],
[['Io01[4:2]'], ['XY_DF1']],
[[['', ''],
[['XY2_IPC'], ['XY_ABC2', 'XY2_IPC']]]]]
解决方案
试试这样:
my_list = [
[[["", ""], ["HB2_DF_en1a", "HB2_DF_en2a"]]],
[[[""], ["XY1_DF_en1a"]], [["Io01[4:2]"], ["XY_DF1"]]],
[[["", ""], ["XY2_DF_en1a", "XY2_DF_en2a"]]],
]
reference_list = [
["XY1_IPC"],
["cat_lpm"],
["XY_ABC1"],
["XY2_IPC"],
["XY_ABC2", "XY2_IPC"],
]
ref_index = 0
for level1 in my_list:
for level2 in level1:
for index, value in enumerate(level2):
if value[0] == "":
for change_index, times in enumerate(value):
level2[1][change_index] = reference_list[ref_index]
ref_index = ref_index + 1
# Print result:
print(my_list)
结果:
[
[
[
['', ''],
[
['XY1_IPC'],
['cat_lpm']
]
]
],
[
[
[''],
[
['XY_ABC1']
]
],
[
['Io01[4:2]'],
['XY_DF1']
]
],
[
[
['', ''],
[
['XY2_IPC'],
['XY_ABC2', 'XY2_IPC']
]
]
]
]