Python中「list.append(val) or list」写法的运行原理是什么?
list.append(val) or list 写法的运行逻辑 核心逻辑可以拆成两个Python基础特性结合的结果:
list.append()方法是原地修改操作,执行完追加元素的动作后,固定返回None,不会主动返回修改后的列表本身。- Python的
or逻辑运算符遵循短路计算规则:从左到右依次计算表达式的布尔值,返回第一个布尔值为真的表达式结果;如果所有表达式布尔值都为假,就返回最后一个表达式的结果。
具体执行顺序如下:
- 先执行左侧的
list.append(val):完成给列表追加元素的操作,返回None - 由于
None的布尔值为假,or会继续计算右侧的list - 非空列表的布尔值为真,因此整个表达式最终返回已经完成追加修改的列表本身
可以参考示例代码验证效果:
my_list = [1, 2, 3] res = my_list.append(4) or my_list print(res) # 输出:[1, 2, 3, 4]
注意:这个写法是原地修改原列表的,修改后原列表本身也会同步变化。如果你的场景需要保留原列表不变、生成一个追加元素后的新列表,更推荐使用
new_list = old_list + [val]的写法。
内容的提问来源于stack exchange,提问作者Vlary Nottellu
相关产品推荐
相关产品推荐

