是否存在语法可在解包元组时为假值设置替代值?
元组解包时为假值设置默认值的单行写法
当然有可行的单行语法,分享几种常用的实现方式:
统一默认值场景:如果所有元素都想用同一个默认值(比如0),可以用生成器表达式配合解包:
values = (1, None) one, two = (v or 0 for v in values) # 结果:one=1,two=0这种写法会遍历
values里的每个元素,自动用指定默认值替代假值(None、0、空字符串、空列表等都会被替换)。如果只想针对None做替换,不想影响其他假值,可以把逻辑改成:one, two = (v if v is not None else 0 for v in values)自定义不同默认值场景:如果每个元素需要不同的默认值,直接针对每个元素单独处理即可:
values = (1, None) one, two = values[0] or 0, values[1] or 10 # 结果:one=1,two=10
内容的提问来源于stack exchange,提问作者Pittfall
相关产品推荐
相关产品推荐

