Python中文
首页
教程
问答
标签
搜索
登录
注册
在一行中使用一个表达式两次作为条件和字符串格式?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我发现,在许多不同的项目中,我编写了很多代码,需要计算一个(中等复杂,可能计算成本很高)表达式,然后用它做一些事情(例如,将它用于字符串格式),但前提是表达式为True/non None。在</p> <p>例如,在很多地方,我都会做如下事情:</p> <pre><code>result += '%s '%( <complexExpressionForGettingX> ) if <complexExpressionForGettingX> else '' </code></pre> <p>。。。我想这基本上是一个更普遍的问题的特例,即想要返回表达式的某个函数,但前提是该表达式为真,即:</p> ^{pr2}$ <p>但是不需要重新键入表达式(或者重新计算表达式,以防代价高昂的函数调用)。在</p> <p>显然,所需的逻辑可以通过各种冗长的方法(例如,将表达式拆分为多个语句并将表达式分配给一个临时变量)来轻松实现,但这有点麻烦,因为这似乎是一个相当普遍的问题,由于python非常酷(尤其是对于函数类的东西),我想知道是否有一种好的、优雅的、简洁的方法来实现它?在</p> <p>我目前最好的选择是定义一个短生命的lambda来处理它(比多个语句好,但是有点难读):</p> <pre><code>(lambda e: '%s ' % e if e else '')( <complexExpressionForGettingX> ) </code></pre> <p>或者编写自己的实用函数,比如:</p> <pre><code>def conditional(expr, formatStringIfTrue, default='') </code></pre> <p>。。。但是,由于我在许多不同的代码库中执行此操作,所以我更愿意使用内置的库函数或一些聪明的python语法(如果存在这样的东西的话)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>可以定义一个条件格式函数一次,然后重复使用:</p> <pre><code>def cond_format(expr, form, alt): if expr: return form % expr else: return alt </code></pre> <p>用法:</p> ^{pr2}$
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
6 回答
文本小部件:在没有输入时更新并在循环后保持空闲
1 回答
文本小部件tkin
5 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
6 回答
文本小部件tkinter复制图像选项
6 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
5 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
5 回答
文本小部件不显示lis中的内容
7 回答
文本小部件不显示Unicode字符
7 回答
文本小部件中写入的行间距
5 回答
文本小部件中的文本作为变量
6 回答
文本小部件中的滚动条仅显示在底部
4 回答
文本小部件中的选项卡键空间计数
3 回答
文本小部件作为Lis
2 回答
文本小部件在主框架中扩展列宽
1 回答
文本小部件未使用删除功能清除
6 回答
文本小部件滚动动画(Tkinter、Python)
7 回答
文本居中。格式正确吗?
10 回答
文本差分算法
7 回答
文本已知时音频文件中的单词索引
4 回答