是否在Python中使用括号或多个变量赋值?

时间:2015-04-27 03:45:29

标签: python

当看到多个变量一次被分配时,我遇到了这些变化:

x,y,z = 1,2,3
(x,y,z) = 1,2,3
x,y,z = (1,2,3)
(x,y,z) = (1,2,3)

我测试了这些,他们似乎都分配了相同的值,我检查了变量类型,它们似乎都是整数。

所有这些都是真正相同的还是有一些我想念的微妙?如果它们是等价的,那在Python中被认为是正确的?

1 个答案:

答案 0 :(得分:9)

正如您所指出的那样,它们在功能上都是等同的。

可以使用逗号,创建Python元组,使用括号作为描述它们的有用方法。

例如,请注意:

>>> x = 1,2,3
>>> print x, type(x)
(1, 2, 3) <type 'tuple'>

>>> x = (1)
>>> print x, type(x)
1 <type 'int'>

>>> x = 1,
>>> print x, type(x)
(1,) <type 'tuple'>

>>> x = (1,)
>>> print x, type(x)
(1,) <type 'tuple'>

当您进行多项作业时,括号再次只定义优先级

至于哪种情况最好,取决于你的情况。

这可能没问题:

latitude, longitude = (23.000, -10.993)

这也是:

latitude, longitude = geo-point # Where geo point is (23.3,38.3) or [12.2,83.33]

这可能有点过头了:

first_name, last_name, address, date_of_birth, favourite_icecream = ... # you get the idea.