美文网首页大数据 爬虫Python AI Sql
Python3序列赋值、序列解包详解(上)

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

作者: 若数 | 来源:发表于2019-05-12 22:00 被阅读3次
153.jpg

###概述
赋值是各个编程语言通用的概念,而在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')

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

相关文章

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

    ###概述赋值是各个编程语言通用的概念,而在Python有多种赋值方法以供选择,比如元组、列表、序列赋值运算等,甚...

  • Python3序列赋值、序列解包详解(下)

    扩展序列解包 上节我们提到解决赋值中等号两边参数不一致的方法可以通过切片,但在Python3中我们可以利用特定的语...

  • python 赋值魔法

    1. 序列解包 2. 链式赋值 3. 增强赋值

  • 循环序列

    序列解包(for x,y in zip(keys, values):)详解。 置顶 2018年09月28日 01:...

  • 1.10赋值语句

    一、赋值语句 赋值语句形式 二、赋值的几种形式 元组及列表解包赋值(序列赋值)当你在“=”左侧编写元组和列表时,p...

  • ES6

    ES6: ES6 新语法 1.变量 解构赋值 (解构赋值对应的python里的序列解包) 解构赋值方式一: 解构赋...

  • 2018-04-07

    # Python序列解包

  • Python快速精通2 - 序列,字典代码部分

    Python3基础2:序列(列表,元组)与字典 (一)序列通用方法 序列封包 本质上: 变量 < - - 元组看下...

  • 函数

    1 2 3 4让函数返回多个结果 5序列解包和链式赋值 6参数 7变量的作用域

  • Python序列解包

    序列解包是Python特有的语法,它将一个序列(或任何可迭代对象)解开,并将得到的值存储到一系列变量中。 一个有趣...

网友评论

    本文标题:Python3序列赋值、序列解包详解(上)

    本文链接:https://www.haomeiwen.com/subject/jylhaqtx.html