python序列定义(详解Python3序列赋值、序列解包)
类别:脚本大全 浏览量:1725
时间:2021-09-30 00:19:07 python序列定义
详解Python3序列赋值、序列解包上节我们提到解决赋值中等号两边参数不一致的方法可以通过切片,但在python3中我们可以利用特定的语法更加方便的处理这种情况,如下示例。
当带 * 出现在结尾间时
|
l = [ 1 , 2 , 3 , 4 , 5 ] a, * b = l print (a, b) |
示例结果:
1 [2, 3, 4, 5]
我们可以看到a匹配了列表中第一个元素值,而b匹配了后面所有的内容,并且为列表。即当我们利用带 * 符号匹配时,就可以解决赋值时等号两边元素数量不相等的情形,那么这种带 * 的处理方式都有哪些详细的使用场景和用法呢?
当带 * 出现在中间时
|
l = [ 1 , 2 , 3 , 4 , 5 ] a, * b, c = l print (a, b, c) |
示例结果:
1 [2, 3, 4] 5
即a和c获取了开头和结尾的元素值,而中间所有的元素值都是赋值给了b
当带 * 出现在开头时
|
l = [ 1 , 2 , 3 , 4 , 5 ] * a, b = l print (a, b) |
即b获取了列表结尾的元素值,而开头到末尾但不包含末尾的所有元素值赋值给了a
通用化
类似序列赋值,扩展的序列解法的用法也可以扩展到任何序列类型,比如元组,字符串:
|
s = 'python' a,b, * c = s print (a,b,c) a,b, * c = list (s) print (a,b,c) |
示例结果
|
p y [ 't' , 'h' , 'o' , 'n' ] p y [ 't' , 'h' , 'o' , 'n' ] |
即我们可以看到字符串的结果和处理列表非常相似,即和对 list(s) 进行扩展序列解包的结果一致。
一些边界情况
在使用扩展序列解包语法,我们也可能遇到一些极端的情况,比如没有剩下的内容用于匹配带 * 的项,此时该项会被赋值为空列表 [] 。
|
l = [ 1 , 2 , 3 , 4 ] a, b, c, d, * e = l 1 2 3 4 [] |
而如果在赋值时出现带多个 * 项,或者只有带 * 的项都会引发错误:
|
l = [ 1 , 2 , 3 , 4 ] * a, b, * c = l l = [ 1 , 2 , 3 , 4 ] * a = l * a, b, * c = l ^ syntaxerror: two starred expressions in assignment * a = l ^ syntaxerror: starred assignment target must be in a list or tuple |
总结
以上所述是小编给大家介绍的python3序列赋值、序列解包,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://juejin.im/post/5cd97dfa6fb9a03202223a1c
您可能感兴趣
- python面向对象使用方法(Python面向对象程序设计之私有属性及私有方法示例)
- python实战方法(Python常用特殊方法实例总结)
- python气温变化数据分析(基于python历史天气采集的分析)
- python图片识别文字代码(python批量识别图片指定区域文字内容)
- wxpython控件如何移动(基于wxPython的GUI实现输入对话框1)
- python中递归方法(Python中最大递归深度值的探讨)
- python数据分析pandas教程(11个Python Pandas小技巧让你的工作更高效附代码实例)
- python虚拟环境和包使用教程(在win10和linux上分别安装Python虚拟环境的方法步骤)
- python里range循环(Python for循环与range函数的使用详解)
- python批量注册(python实现批量注册网站用户的示例)
- python做了一个自动翻译的小工具(Python 20行简单实现有道在线翻译的详解)
- python使用门算法加密文件(python实现栅栏加解密 支持密钥加密)
- 用python编写一个gui(用 Python 构建漂亮的 GUI)
- python numpy数组拼接(Python快速转换numpy数组中Nan和Inf的方法实例说明)
- 闭包python讲解(详解Python循环作用域与闭包)
- python代码如何进行切片索引(Python读取Pickle文件信息并计算与当前时间间隔的方法分析)
- 嘉南传 第22集(嘉南传第22集)
- 哪版孙悟空最萌 黄渤躺萌了(哪版孙悟空最萌)
- 融入小人物的喜怒哀乐,黄渤饰演的角色为什么让人观看时欲罢不能(融入小人物的喜怒哀乐)
- 《极限挑战》深访都市夜归人,夜间打工者体验,黄磊录完憔悴了(极限挑战深访都市夜归人)
- Google 推出了一个游戏生成器,让不会编程的你也能自己设计游戏(推出了一个游戏生成器)
- 二胎家庭老大爱闹情绪,用这招很有效(二胎家庭老大爱闹情绪)
热门推荐
- python怎么用代码写出心形(六行python代码的爱心曲线详解)
- 阿里云服务器应该买哪个(阿里云服务器购买时面对众多地域,该如何选择)
- 腾讯云服务器安装需要什么(免费的云服务器怎么申请?腾讯云服务器的申请流程)
- vue用于动态切换组件的内置组件(Vue 可拖拽组件Vue Smooth DnD的使用详解)
- border:0和border:none的区别
- python使用教程操作(详解python中@的用法)
- mysql事务未提交会锁表吗(Mysql事务中Update是否会锁表?)
- sqlserver 高级查询(利用 SQL Server 过滤索引提高查询语句的性能分析)
- redis在php中的使用(PHP+Redis开发的书签案例实战详解)
- linux 安装securecrt(Linux SecureCRT显示乱码解决方案)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9