当看到多个变量一次被分配时,我遇到了这些变化:
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中被认为是正确的?
答案 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.