随笔 - 214  文章 - 12  评论 - 40  阅读 - 38万

Python基础09 赋值魔法

Python的赋值语句有一些使用窍门。

 

一、序列解包

序列解包:将一个序列解包,并将得到的值存储到一系列变量中。

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

 

>>> values = 1, 2, 3
>>> values
(1, 2, 3)
>>> x, y, z = values
>>> print(x, y, z)
1 2 3

 

使用这种方式还可交换多个变量的值。

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

 

要解包的序列包含的元素个数必须与目标个数相同,否则将引发异常。

>>> x, y, z = 1, 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 3, got 2)
>>> x, y, z = 1, 2, 3, 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 3)

 

可使用星号运算符(*)来收集多余的值,这样无须确保值和变量的个数相同。

>>> x, y, *z = 1, 2, 3, 4
>>> z
[3, 4]

还可将带星号的变量放在其他位置。

>>> x, *y, z = 1, 2, 3, 4
>>> y
[2, 3]

 

二、链式赋值

链式赋值用于将多个变量关联到同一个值。

  x = y = somefunction()

上述代码与下面的代码等价:

  y = somefunction()

  x = y

 

三、增强赋值

x = x + 1 可以写成 x += 1,这称为增强赋值。

 

增强赋值适用于所有标准运算符,如*、/、%等。

>>> x = 2
>>> x += 1 >>> x *= 2 >>> x /= 2 >>> x %= 2

 

增强赋值也可用于其他数据类型。

>>> x = 'py'
>>> x += 'thon'
>>> x *= 2

 

posted on   麦克煎蛋  阅读(262)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示