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

问题描述

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

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

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

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

list_x = [['Light_1',['AA','ON']],'ON']]]

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

for n,i in enumerate(list_x):
    if i==list_y:
        list_x[n]=list_y
list_x
[['Light_1','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]