Python元组可选元素添加的更简洁写法及未来语法问询
Python 可变元素元组的精简写法与未来语法展望
现有精简写法
以下几种写法比你给出的*([foo] if foo is not None else [])更简短,同时满足你的要求:
*((foo,) if foo else ()):用元组替代列表,同时借助布尔判断省略is not None(None在布尔上下文里为False),比原写法更紧凑。*filter(None, (foo,)):通过filter(None, ...)过滤掉None值,写法更简洁,但可读性稍弱。
这些写法都不需要拆分if分支创建不同元组,也不会向元组中添加None元素。
未来Python的专用语法情况
目前Python官方的PEP(Python增强提案)中,还没有专门针对这种“可选元素展开”的语法被正式纳入版本规划。社区里确实有过相关讨论,比如提议类似*?foo这类仅需引用一次变量的简洁语法,但这类提案尚未进入正式开发流程,短期内不会出现在稳定版本中。
内容的提问来源于stack exchange,提问作者Axel Heider
相关产品推荐
相关产品推荐

