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

2024-05-07 06:54:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要替换列表[设备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函数中


1条回答
网友
1楼 · 发布于 2024-05-07 06:54:31

如果已知要替换的字符串,则可以通过以下方式进行替换:

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代替lambdaPEP8 E731

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

foo = lambda values: [replacements.get(x) or 'color0' for x in values]

相关问题 更多 >