如何解决python 字符串列表,替换所有不属于特定子列表的出现
我需要替换一个列表 [device1,device2,device0,device3,device4,device5] 与 [颜色 1,颜色 2,颜色 0,颜色 3,颜色 0,颜色 0] 所以所有不在 [device1,device3] 中的设备我都需要用默认颜色替换。到目前为止,我有:
set_colors: Callable[[str],str] = lambda s: s \
.replace(device1,color1) \
.replace(device2,color2) \
.replace(device3,color3)
如何在所有其他设备上实现该部件?我尝试过正则表达式,但我不知道如何将它包含在 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)。
但是如果你真的需要一个lambda
:
foo = lambda values: [replacements.get(x) or 'color0' for x in values]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。