在C(和C族语言)中,表达式(4+7, 5+2)
返回7
。但Python中的相同表达式会产生元组(11, 7)
python还有像C这样的逗号运算符吗?
答案 0 :(得分:7)
您应该使用类似的东西来替换它:
comma_operated = (4+7, 5+2)[-1]
但正如评论中正确指出的那样,你为什么要这样做?它很少用于C或C ++,并且有充分的理由。
答案 1 :(得分:5)
AFAIK,没有。虽然你总是可以用两行而不是一行来模拟这个。 : - )
x = (call_one(), call_two())
# is almost the same as
call_one()
x = call_two()
# or
x = (call_one(), call_two())[1]
答案 2 :(得分:0)
此问题的更新。
按现状,接受的答案是不完整的,因为它不允许以这种方式使用赋值表达式(例如(a = 1, a+2)[-1]
会产生错误)。
Python 3.8现在推出了Assignment Expressions,从理论上讲应该可以实现这一点,即
( a := 1, a + 2)[-1]