python的变量赋值操作_python多个变量赋值操作方法整理

本文介绍了Python中赋值语句的序列解包技巧。使用序列解包,一个表达式就能完成多个变量赋值,还能用于交换变量。函数或方法返回元组时,该特性很有用。不过,解包序列元素数量要和赋值符号左边变量数量一致,否则会引发异常。Python3.0还有带星号运算符的解包特性。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

序列解包是Python编程语言(http://www.maiziedu.com/course/python-px/)中赋值语句的一种技巧方法,如果要为多个变量赋值,按照以前的方法,会操作很多次才能完成,如果使用序列解包,就只需要一个表达式就可以完成多个变量赋值操作。那么赋值语句序列解包操作方法有哪些呢,比如,多个赋值操作可以同时进行:

>>> x, y, z = 1, 2, 3

>>> print x, y, z1 2 3

# 很有用吧?用它交换两个(或更多个)变量也是没问题的:

>>> x, y = y, x>>> print x, y, z2 1 3

事实上,这里所做的事情叫做序列解包(sequence unpacking)或递归解包——将多个值的序列解开,然后放到变量的序列中。更形象一点的表示就是:

>>> values = 1, 2, 3

>>> values

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

>>> y2

>>> z3

当函数或者方法返回元组(或者其他序列或可迭代对象)时,这个特性尤其有用。假设需要获取(和删除)字典中任意的键-值对,可以使用popitem方法,这个方法将键-值作为元组返回。那么这个元组就可以直接赋值到两个变量中:

>>> scoundrel = {"name": "XuHoo", "girlfriend": "None"} # =_=

>>> key, value = scoundrel.popitem()>>> key'girlfriend'

>>> value'None'

它允许函数返回一个以上的值并且打包成元组,然后通过一个赋值语句很容易进行访问。所解包的序列中的元素数量必须和放置在赋值符号=左边的变量数量完全一致,否则Python会在赋值时引发异常:

>>> x, y, z = 1, 2

Traceback (most recent call last):

File "", line 1, in

ValueError: need more than 2 values to unpack>>> x, y, z = 1, 2, 3, 4

Traceback (most recent call last):

File "", line 1, in

ValueError: too many values to unpack

注:Python3.0中有另外一个解包的特性:可以像在函数的参数列表中一样使用星号运算符(参见第六章)。例如,a, b, *rest = [1, 2, 3, 4]最终会在a和b都被赋值之后将所有的其他的参数都收集到rest中。本例中,rest的结果将会是[3, 4]。使用星号的变量也可以放在第一个位置,这样它就总会包含一个列表。右侧的赋值语句可以是可迭代对象。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值