python - 如何通过IF语句简化变量赋值

标签 python python-3.x

我有简单的 Python 3 表达式:

if a:
    b = a
else:
    print('error')

但是就我而言,“a”恰好等于一个非常冗长但必要的正则表达式搜索命令(与此处无关。)我可以简化上面的代码,以便:

1) 我不需要为“a”赋值。

2) 我不需要在表达式中两次声明“a”的值。

谢谢!

最佳答案

在 Python 3.8 中,named assignments将介绍让您做的事情:

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)

但这应该被视为纯粹的学术性。

关于python - 如何通过IF语句简化变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58083015/

相关文章:

python - 用python获取两个不同字典的平均分

python - CountVectorizer 矩阵随新的分类测试数据变化?

python - 无法获取给出错误结果的网页

python-3.x - 使用python 3.6安装自定义构建tensorflow 1.12车轮时出错

python-3.x - 调整 Bokeh 下拉菜单和其他小部件的大小

python - 使用鼠标移动 QtWidgets.QtWidget

python - 从正则表达式模式返回不匹配的行

python - 使用 pip install Matplotlib 时出现内存错误

python - 在 Django 中收到电子邮件时将对象保存到数据库

python - 如何从另一个应用程序获取管道输入并随后获取用户输入?