python字符串列表,替换不属于特定子列表的所有事件

python字符串列表,替换不属于特定子列表的所有事件,python,regex,string,lambda,Python,Regex,String,Lambda,我需要替换列表[设备1、设备2、设备0、设备3、设备4、设备5] 使用[color1,color2,color0,color3,color0,color0] 因此,我需要用默认颜色替换[device1,device2,device3]中没有的所有设备。到目前为止,我已经: set_colors: Callable[[str], str] = lambda s: s \ .replace(device1, color1) \ .replace(device2, color2) \

我需要替换列表[设备1、设备2、设备0、设备3、设备4、设备5] 使用[color1,color2,color0,color3,color0,color0] 因此,我需要用默认颜色替换[device1,device2,device3]中没有的所有设备。到目前为止,我已经:

set_colors: Callable[[str], str] = lambda s: s \
    .replace(device1, color1) \
    .replace(device2, color2) \
    .replace(device3, color3) 

如何在所有其他设备上实现该部件?我尝试了regex,但我不知道如何将其包含在lambda函数中。

如果要替换的字符串已知,则可以这样做:

def foo(值:List[str])->List[str]:
替换={
“设备1”:“颜色1”,
“设备2”:“颜色2”,
“device3”:“color3”
}
返回[
替换。获取(x)或“color0”
对于值中的x
]
使用
def
代替
lambda
()

但是如果你真的需要一个
lambda

foo=lambda值:[replacements.get(x)或'color0'表示值中的x]

字符串是真正意义上的
device0
color0
还是更复杂的字符串?如果更复杂,替换值从何而来?我们不知道设备0、设备4、设备5可能是什么,它们将来自db,可以是任何带空格的字符串。颜色不重要,可以是“蓝色”。太好了,谢谢!成功了!