【问题标题】:One Line Solution to Variable Assignment变量赋值的一行解决方案
【发布时间】:2022-12-11 00:53:38
【问题描述】:

问题:假设我们从列表中 pop() 一个元素,如果满足某个条件,我们想将该表达式的返回值分配给一个变量,否则,我们不会将表达式的返回值分配给该变量和值该变量的一部分将保持原样,有没有办法在一行中做到这一点?

下面是我能想到的最简洁的解决方案,有更短的方法吗?

element = some_list.pop()
variable = element if condition else variable

【问题讨论】:

  • 一个班轮被高估了。为了清楚起见,不要写最少的行数或字符数。

标签: python variables variable-assignment


【解决方案1】:

如果 element 的值是条件的一部分,您可以使用赋值表达式将 element 的定义嵌入条件本身。例如,

variable = element if (element := some_list.pop()) > 3 else variable

但是,这不是非常可读。最好使用简单的 if 语句来阻止分配完全执行,而不是在条件为假时跳过箍以创建无操作分配。

element = some_list.pop()
if condition:
    variable = element

或者

if (element := some_list.pop()) > 3:
    variable = element

【讨论】:

    猜你喜欢
    • 2019-03-23
    • 2012-08-02
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 2012-09-26
    • 2020-03-04
    相关资源
    最近更新 更多