python - 如何通过 IF 语句简化变量赋值
问题描述
我有简单的 Python 3 表达式:
if a:
b = a
else:
print('error')
但是在我的情况下,'a'恰好等于一个非常冗长但必要的正则表达式搜索命令(这里不相关。)我可以简化上面的代码,以便:
1)我不需要为'a'赋值。
2) 我不需要在表达式中两次声明 'a' 的值。
谢谢!
解决方案
在 Python 3.8 中,将引入命名赋值,让您可以:
if a := complicated_expression:
b = a
建议
b = a or b
是有效的,但需要b
事先为其分配一个值。如果条件仅检查a
具有任意条件的严格单线的真实性,它也可以工作,您始终可以使用单例生成器技巧:
b = next((a for a in (complex_expression for _ in '_') if condition(a)), None)
但这应该被认为是纯粹的学术性的。
推荐阅读
- java - UnsupportedOperationException: 超过 wifi 锁的最大数量
- python - 为什么我在一个形状的 python pptx 上有一个组形状错误?
- unix - What is a grep pattern that can search for only the words that alternate vowels and consonents?(including 2 letter combinations)
- angular - “无法匹配任何路由。URL 段:...”尝试使用命名插座时出错
- iframe - DOM操作后iOS 13 iframe点击区域损坏
- javascript - 使用 visibilityChange 事件触发状态更新时防止浏览器向上滚动
- css - 匿名内联框是否包含空格?
- php - `mt_rand` 是否产生足够安全的结果来生成不记名令牌?
- node.js - 离子命令无法识别并且 Npm 安装创建了不必要的文件
- java - MidiManager.getDevices() 返回一个空列表,其中包含通过 USB 直接连接的合成器