在Python中,a=b=c是什么意思?

19

我感到相当困惑,Python 中可以使用连续的等号=,例如:

a = b = c

这种语言特性叫什么?有相关的阅读材料吗?

它能生成四个相等的东西吗?

a = b = c = d
2个回答

23

这只是一种声明ab等于c的方法。

>>> c=2
>>> a=b=c
>>> a
2
>>> b
2
>>> c
2

所以你可以使用任意多的量:

>>> i=7
>>> a=b=c=d=e=f=g=h=i

您可以在Python教程中的多重赋值中阅读更多内容。

Python允许您同时将单个值分配给多个变量。例如:

a = b = c = 1

在这里,创建了一个具有值1的整数对象,并将所有三个变量分配到同一个内存位置。您还可以将多个对象分配给多个变量。例如:

a,b,c = 1,2,“john”

在这里,值为1和2的两个整数对象被分配给变量a和b,并且值为“john”的一个字符串对象被分配给变量c。


还有另一种花式操作!您可以像这样交换值:a,b=b,a

>>> a=2
>>> b=5
>>> a,b=b,a
>>> a
5
>>> b
2

3

Python支持一次性多变量赋值,称为多变量赋值。

In [188]: a = b = c = d = 4

In [189]: a
Out[189]: 4

In [190]: b
Out[190]: 4

In [191]: c
Out[191]: 4

In [192]: d
Out[192]: 4

In [193]: a = 2

In [194]: b = 2

对于 immutable 对象来说也是一样的

In [195]: a, b = 2 #int is a immutable object like `tuple`, `str`

虽然这并不是针对可变对象如listdictionary的,但你可以阅读有关可变和不可变对象的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接