python是否有像C这样的逗号运算符

时间:2011-08-03 06:51:57

标签: python

在C(和C族语言)中,表达式(4+7, 5+2)返回7。但Python中的相同表达式会产生元组(11, 7)

python还有像C这样的逗号运算符吗?

3 个答案:

答案 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]