Pythonic方式有条件地分配变量

时间:2013-03-19 21:21:35

标签: python

有关如何在Python中执行此操作的任何建议吗?

if x():
  a = 20
  b = 10
else:
  a = 10
  b = 20

我可以如下交换它们,但它不是那么清楚(也不是非常pythonic的IMO)

a = 10
b = 20
if x():
  [a, b] = [b, a]

2 个答案:

答案 0 :(得分:11)

(a,b) = (20,10) if x() else (10,20)

答案 1 :(得分:5)

使用a, b = b, a交换值被视为idiomatic in Python

a, b = 10, 20
if x(): a, b = b, a

一件好事就是你不要重复1020,所以它有点DRY-er