49 序列解包的多种形式和用法

序列解包(Sequence Unpacking)是 Python 中非常重要和常用的一个功能,可以使用非常简洁的形式完成复杂的功能,提高了代码的可读性,减少了程序员的代码输入量。

x, y, z = 1, 2, 3  # 多个变量同时赋值
v_tuple = (False, 3.5, 'exp')
(x, y, z) = v_tuple
x, y, z = v_tuple
x, y, z = range(3)  # 可以使用 range 对象进行序列解包
x, y, z = iter([1, 2, 3])  # 使用迭代器对象进行序列解包
x, y, z = map(str, range(3))  # 使用可迭代的 map 对象进行序列解包
a, b = b, a  # 交换两个变量的值

序列解包可以用于列表、字典、enumerate 对象、filter 对象、zip 对象等。对字典使用时,默认是对字典的 “键” 进行操作,如果对 “键:值” 对进行操作应使用字典的 items() 方法说明,如果需要对字典 “值” 进行操作应使用字典的 values() 方法明确指定。

x, y, z = sorted([1, 3, 2])  # 列表支持序列解包的用法
print(x, y, z)s = {'a': 1, 'b': 2, 'c': 3}
x, y, z = s.items()
print(x, y, z)
x, y, z = s
print([x, y, z])
x, y, z = s.values()
print([x, y, z])x, y, z = 'ABC'  # 字符串支持序列解包
print([x, y, z])

在这里插入图片描述

使用序列解包可以很方便地同时遍历多个序列。

keys = ['a', 'b', 'c', 'd']
values = [1, 2, 3, 4]
for k, v in zip(keys, values):print((k, v), end=' ')print('')x = ['a', 'b', 'c']
for i, j in enumerate(x):print((i, j), end=' ')print('')s = {'a': 1, 'b': 2, 'c': 3}
for k, v in s.items():print((k, v), end=' ')

在这里插入图片描述

序列解包的另类用法和错误用法。

print(*[1, 2, 3], 4, *(5, 6))
print(*range(4), 4)
print(*range(4))
print({*range(4), 4, *(5, 6, 7)})
print({'x': 1, **{'y': 2}})
a, b, c = range(3)
print(a, b, c)
# a, b, c = *range(3)  # 不允许这样使用,SyntaxError: can't use starred expression here
a, b, c, d = *range(3), 3
print(a, b, c, d)

在这里插入图片描述

序列解包的逆运算,与函数的可变参数一样,用来收集等号右侧的多个值。

a, *b, c = 1, 2, 3, 4, 5
print(a, b, c)a, *b, c = tuple(range(10))
print(a, b, c)# *x = 1, 2, 3, 4  # 等号左侧必须为列表、元组或多个变量

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/391306.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【课程系列07】某乎AI大模型全栈工程师-第7期

网盘链接 链接:百度网盘 请输入提取码 --来自百度网盘超级会员v6的分享 课程目标 学习完毕咱们可以收获什么种能力: 1、传统前端 后端 数据分析 产品 绘图 算法工程等工作,一个人都可以实现,实现超级个体的能力 2、可以解决…

【C语言】Top K问题【建小堆】

前言 TopK问题:从n个数中,找出最大(或最小)的前k个数。 在我们生活中,经常会遇到TopK问题 比如外卖的必吃榜;成单的前K名;各种数据的最值筛选 问题分析 显然想开出40G的空间是不现实的&#…

基于STM32的温湿度监控系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码主循环代码应用场景 家居环境监控工业环境监控常见问题及解决方案 常见问题解决方案结论 1. 引言 在智能家居和工业自动化中,温湿度监控系统是一个非常重要的组成部分…

Java企业微信服务商代开发获取AccessToken示例

这里主要针对的是企业微信服务商代开发模式 文档地址 可以看到里面大致有三种token,一个是服务商的token,一个是企业授权token,还有一个是应用的token 这里面主要有下面几个参数 首先是服务商的 corpid 和 provider_secret ,这个可…

使用GCC编译Notepad++的插件

Notepad的本体1是支持使用MSVC和GCC编译的2,但是Notepad插件的官方文档3里却只给出了MSVC的编译指南4。 网上也没有找到相关的讨论,所以我尝试在 Windows 上使用 MinGW,基于 GCC-8.1.0 的 posix-sjlj 线程版本5,研究一下怎么编译…

快手商业化 Java后端 二面|面试官很nice

面试总结:没有那种纯八股问题,都是偏向于情景题。看到面试官最后出了一道多叉树的题目,我以为是想直接刷人,但还是尽力去尝试了一下,最后也没做出来,面试官很nice,在答不上来的时候会引导我去思…

JVM—垃圾收集算法和HotSpot算法实现细节

参考资料:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明 1、分代回收策略 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取…

python实现小游戏——植物大战僵尸(魔改版本)

制作一款DIY的‘植物大战僵尸’游戏引起了很多人的兴趣。在这里,我将分享一个使用Python语言在PyCharm环境中开发的初始状态版本。这个版本主要应用了pygame库来完成,是一个充满创意和趣味的魔改版本。 文章目录 前言一、开发环境准备二、代码1.main方法…

Linux小组件:gcc

gcc 是C语言的编译器,在Linux下我们也用这个编译C语言 安装gcc sudo apt install build-essential 查看gcc版本信息 gcc --version 有时候会出现代码编译不过去的问题,通常可能是gcc的编译标准太低,不支持某些写法 比如在很多旧的编译标…

SQL注入实例(sqli-labs/less-4)

0、初始页面 1、确定闭合符号 前两条判断是否为数值型注入,后两条判断字符型注入的闭合符号 ?id1 and 11 ?id1 and 12 ?id1" ?id1") 2、确定表的列数 ?id1") order by 3 -- 3、确定回显位置 ?id-1") union select 1,2,3 -- 4、爆库…

【kali靶机之serial】--反序列化漏洞实操

kali靶机配置 【我图片里没有截图的默认配置即可】需要改的地方图片里面都有。 使用kali扫描网关的主机。 扫到一个开放了80端口HTTP协议的主机ip 访问80端口 会看到一个文本页面,翻译一下看是什么意思。。 F12查看cookie,是一个base64编码了的东西 使…

新手小白学习PCB设计,立创EDA专业版

本教程有b站某UP主的视频观后感 视频链接:http://【【教程】零基础入门PCB设计-国一学长带你学立创EDA专业版 全程保姆级教学 中文字幕(持续更新中)】https://www.bilibili.com/video/BV1At421h7Ui?vd_sourcefedb10d2d09f5750366f83c1e0d4a…

指标一致化处理

什么是数据指标 数据指标有别于传统意义上的统计指标,它是通过对数据进行分析得到的一个汇总结果,是将业务单元精分和量化后的度量值,使得业务目标可描述、可度量、可拆解。 数据指标有哪些类型 极大型:期望取值越大越好; 极小…

Memcached未授权访问漏洞

Memcached 是一套常用的 key-value 分布式高速缓存系统,由于 Memcached 的安全设计缺陷没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者无需认证通过命令交互可直接读取 Memcached中的敏感信息。 app"Mem…

AI电销机器人的效果与作用

ai电销机器人的工作效率是非常高的,电销机器人一天的外呼量至少是3000左右,工作效率是人工的十倍还多,并且电销机器人没有负面情绪,一直都可以保持高昂的工作热情,非常简单方便。 并且ai电销机器人是越用越聪明的&…

英国AI大学排名

计算机学科英国Top10 “计算机科学与信息系统”学科除了最受关注的“计算机科学”专业,还包括了“人工智能”“软件工程”“计算机金融”等众多分支专业。 1.帝国理工学院 Imperial College London 单以计算机专业本科来讲,仅Computing这个专业&#x…

来点八股文(五) 分布式和一致性

Raft raft 会进入脑裂状态吗?描述下场景,怎么解决? 不会。raft通过选举安全性解决了这个问题: 一个任期内,follower 只会投票一次票,且先来先得;Candidate 存储的日志至少要和 follower 一样新…

用uniapp 及socket.io做一个简单聊天app 4

界面如下&#xff1a; <template><view class"container"><input v-model"username" placeholder"用户名" /><input v-model"password" type"password" placeholder"密码" /><butto…

comfyUI-MuseTalk的参数设置

comfyUI-MuseTalk的参数设置 目录 comfyUI-MuseTalk的参数设置 一、ComfyUI-VideoHelperSuite 二、comfyUI-MuseV合成的参考视频 2.1、什么时候会用到MuseV&#xff1f; 2.2、MuseV特别消耗系统内存 2.2.1、测试图片序列的像素比 2.2.2、影响运动范围和生成结果的参数 …

Yarn:一个快速、可靠且安全的JavaScript包管理工具

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;还请三连支持一波哇ヾ(&#xff20;^∇^&#xff20;)ノ&#xff09; 目录 一、Yarn简介 二、Yarn的安装 1. 使用npm安装Yarn 2. 在macOS上…