Python 将相同的值存储到多个变量

Python 将相同的值存储到多个变量,python,Python,我想知道是否有一个更快的方法来设置这些下面 Max_age = 21 Suzy_age = 21 Mia_age = 21 为什么不写呢 Max_age and Suzy_age and Mia_age = 21 甚至 Max_age = Suzy_age = Mia_age = 21 我是python新手,这类代码看起来非常直观,但不知何故,没有像Those那样的一行代码?我错了吗?请告诉我我错了 您可以这样做: Max_age, Suzy_age, Mia_age = 21, 21

我想知道是否有一个更快的方法来设置这些下面

Max_age  = 21
Suzy_age = 21
Mia_age  = 21
为什么不写呢

Max_age and Suzy_age and Mia_age = 21
甚至

Max_age = Suzy_age = Mia_age = 21
我是python新手,这类代码看起来非常直观,但不知何故,没有像Those那样的一行代码?我错了吗?请告诉我我错了

您可以这样做:

Max_age, Suzy_age, Mia_age = 21, 21, 21
Max_age,Suzy_age,Mia_age=[21]*3

第一个无效

a和b以及c=1
将导致错误,因为
a和b
是一个二进制表达式,它是一个值,而不是一个变量,因此您无法为其赋值

第二个是有效的

a=b=c=1
将按顺序运行

a = (b = (c = 1))
因为赋值是右关联的。赋值
c=1
的计算结果为
1
,因此将赋值给
b
,依此类推

然而,在python中,编写多个赋值是很常见的,比如

a,b,c=1,2,3
这就是所谓的元组解包


这是否比每行一个赋值更好,取决于样式和上下文。

我知道我们可以将所有对象都放在一个列表中,但是我要的是一行代码。你需要为代码行付费吗?你的最后一个例子是ok
Max\u age=Suzy\u age=Mia\u age=21
已经有效。你应该试着检查你想的例子是否已经有效了,在你的例子中,第二个已经有效了。“分配是正确的。赋值c=1返回1,因此将被赋值给b,依此类推。“嗯,不,python中的赋值不是这样工作的。它们不“返回”任何东西,而是从左到右执行。(
a
首先被赋值,然后
b
,然后
c
)我认为澄清这一点很重要,
a=(b=(c=1))
不是有效的python语句,因为您无法为全局变量定义赋值。
a=b=c=1
是一个单独的python语法规则。@Aran Fey:
a
被分配给表达式的结果
b=…
。因此,必须首先计算正确的表达式。如何首先分配
a
b=…
根本不是一个表达式。赋值是语句,它们从左到右执行。@blue\u注意,如语言参考中所述,每个目标列表都是从左到右赋值给结果对象的。结果对象是
1
a
b
c
中的每一个都是目标列表,m这意味着
a=b=c=1
a
直接设置为
1
,然后
b
直接设置为
1
,并将
c
直接设置为1,按顺序排列。使用
ast
解析表达式,或使用
dis
分解表达式都将证明
b
未设置为子表达式的值例如,session
c=1