使用[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(values: List[str]) -> List[str]: replacements = { 'device1': 'color1', 'device2': 'color2', 'device3': 'color3' } return [ replacements.get(x) or 'color0' for x in values ]
使用 def 而不是 lambda ( PEP8 E731
def
lambda
但是如果你 真正地 需要一个 λ
λ
foo = lambda values: [replacements.get(x) or 'color0' for x in values]