Python3序列赋值、序列解包详解(上)

###概述 赋值是各个编程语言通用的概念,而在Python有多种赋值方法以供选择,比如元组、列表、序列赋值运算等,甚至还有扩展的序列解包赋值方法完成更加复杂的赋值运算。

一些基本赋值运算

下面示例介绍了元组赋值运算、列表赋值运算及任意对象的序列赋值的简单使用

# 元组赋值运算
one, two, three = (1, 2, 3)
print(one, two, three)
# 列表赋值运算
one, two, three = [1, 2, 3]
print(one, two, three)

one = 1
two = 2
# 简单序列赋值赋值
A, B = one, two
print(A, B)

# 将元组中的值赋值给列表
[a, b, c] = ('A', 'B', 'C')
print([a, b, c])
复制代码

示例结果:

1 2 3
1 2 3
1 2
['A', 'B', 'C']
复制代码

从示例我们看到,右侧实际上支持任意可迭代的对象,但前提是右侧对象内的元素个数需要与左侧对应相等,比如将右侧元组的值赋值左侧的列表中。

高级序列赋值元素

前面我们提到序列赋值的元素条件之一就是等号两边的元素数量需要相等,但是在Python3中我们可以利用更加实用的扩展解包的方法,当然我们也可以利用其它的方式解决,比如利用切片解决一些元素不相等的情形。

S = 'STR'
a, b, c = S
print(a, b, c)

# 利用切片解决两边元素不相等的情形
S = 'PYTHON'
a, b, c = S[0], S[1], S[2:]
print(a, b, c)

# 嵌套赋值
(a, b), c = S[:2], S[2:]
print((a, b), c)
复制代码

示例结果:

('S', 'T', 'R')
('P', 'Y', 'THON')
(('P', 'Y'), 'THON')
复制代码

可以看到我们甚至可以利用切片进行嵌套赋值,完成更加复杂赋值运算。

转载于:https://juejin.im/post/5cd8258ae51d453a7e4c17ff

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值