在C语言(和C语言家族)中,表达式
那么Python是否有像C一样的逗号运算符呢?
(4+7, 5+2)
返回7
。但是在Python中,相同的表达式将得到一个元组(11, 7)
。那么Python是否有像C一样的逗号运算符呢?
(4+7, 5+2)
返回7
。但是在Python中,相同的表达式将得到一个元组(11, 7)
。comma_operated = (4+7, 5+2)[-1]
但如评论中所正确指出的,你为什么要这样做呢?它在C或C++中很少使用,而且有充分的原因。
x = (call_one(), call_two())
# is almost the same as
call_one()
x = call_two()
# or
x = (call_one(), call_two())[1]
这个问题有了新的更新。
目前接受的答案不完整,因为它不允许在这种情况下使用赋值表达式(例如,(a = 1, a+2)[-1]
会生成错误)。
Python 3.8现在推出了赋值表达式,理论上应该可以实现这一点,即:
( a := 1, a + 2)[-1]