检查python中的多个变量是否大于零

Asi*_*sif 4 python

A = 200
B = -140
C = 400
D = -260

if A < 0:
   v1 = 0
else:
   v1 = A

if B < 0:
   v2 = 0
else:
   v2 = B

 if C < 0:
   v3 = 0
else:
   v3 = C

if D < 0:
   v4 = 0
else:
   v4 = C
Run Code Online (Sandbox Code Playgroud)

上述代码结构的简写实现是什么?有没有更好/优雅/方便的方法来做到这一点?

mgi*_*son 13

A = 200
B = -140
C = 400
D = -260

v1, v2, v3, v4 = [x if x > 0 else 0 for x in (A, B, C, D)]
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢将该max函数用于python三元运算符,它将如下所示:

v1, v2, v3, v4 = [max(x, 0) for x in (A, B, C, D)]
Run Code Online (Sandbox Code Playgroud)

但是,如果您计划将所有这些变量视为相同,则可能需要考虑将它们放在列表/元组中.

values = [200, -140, 400, -260]
values = [max(x, 0) for x in values]
Run Code Online (Sandbox Code Playgroud)