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

问题描述 投票:5回答:3

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

那么python有一个像C这样的逗号运算符吗?

python
3个回答
8
投票

您应该使用类似的东西来替换它:

comma_operated = (4+7, 5+2)[-1]

但正如评论中正确指出的那样,你为什么要这样做呢?它很少用于C或C ++,并且有充分的理由。


5
投票

AFAIK,没有。虽然你总是可以用两行而不是一行来模拟这个。 :-)

x = (call_one(), call_two())

# is almost the same as

call_one()
x = call_two()

# or
x = (call_one(), call_two())[1]

0
投票

此问题的更新。

目前接受的答案是不完整的,因为它不允许以这种方式使用赋值表达式(例如(a = 1, a+2)[-1]会产生错误)。

Python 3.8现在提出Assignment Expressions,理论上应该使这成为可能,即

( a := 1, a + 2)[-1]
© www.soinside.com 2019 - 2024. All rights reserved.