在C(和C族语言)中,表达式(4+7, 5+2)
返回7
。但Python中的相同表达式将导致元组(11, 7)
那么python有一个像C这样的逗号运算符吗?
您应该使用类似的东西来替换它:
comma_operated = (4+7, 5+2)[-1]
但正如评论中正确指出的那样,你为什么要这样做呢?它很少用于C或C ++,并且有充分的理由。
AFAIK,没有。虽然你总是可以用两行而不是一行来模拟这个。 :-)
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现在提出Assignment Expressions,理论上应该使这成为可能,即
( a := 1, a + 2)[-1]