在嵌套列表 2 中查找嵌套列表 1 中的元素并替换元素

Find elements from nested list 1 in nested list 2 and replacing elements

我正在尝试根据在第二个嵌套 list_y 中找到的匹配元素修改嵌套 list_x,并将该元素替换为 list_2:

中的项目

list_x = [['Light_1', 'CC', 'AA'], ['Light_2', 'BB'], ['Light_3', 'DD', 'AA']]

list_y = [['AA', 'ON'], ['BB', 'ON'], ['DD', 'OFF'], ['CC', 'ON'], ['EE', 'ON']]

所以目标是最终得到一个 list_x 看起来像:

list_x = [['Light_1', ['CC', 'ON'], ['AA', 'ON']], ['Light_2', ['BB', 'ON']], ['Light_3', ['DD', 'OFF'], ['AA', 'ON']]]

到目前为止,我的代码只得到了这个:

for n, i in enumerate(list_x):
    if i==list_y:
        list_x[n]=list_y
list_x
[['Light_1', 'CC', 'AA'], ['Light_2', 'BB'], ['Light_3', 'DD', 'AA']]

有人可以帮助找出我的代码中缺少的内容以获得所需的结果吗?

非常感谢

我会先为第二个列表创建一个字典,这样您就不必每次需要使用“AA”、“BB”等键进行匹配时都搜索该列表,但可以在字典中更快地查找它:

dict_y = { key: value for key, value in list_y }

然后,使用该字典将第一个列表映射到您想要的输出:

result = [[light, [[key, dict_y[key]] for key in keys]] for light, *keys in list_x]