python元祖封包_python的封包与解包
python的封包与解包
1. python 封包
将多个值赋值给一个变量时,python会自动将这些值封装成元组,这个特性称之为封包
a = 1, 2, 3
print(a, type(a)) # (1, 2, 3)
当函数返回多个数值时,也会进行封包
def test():
return 1, 2, 3
a = test()
print(a, type(a)) # (1, 2, 3)
实践中,很少主动使用封包操作
2. python解包
python解包是使用频率非常高的技术,下面列列举几种使用python解包的场景
2.1 接收函数返回值
def test():
return 1, 2, 3
a, b, c = test()
print(a, b, c) # 1 2 3
函数的返回值是一个元组,左侧是三个变量,这样就会发生解包,a, b, c依次等于元组里的元素,函数的返回值有3个,被封包成了元组, 赋值语句的左侧不一定非得是3个变量
def test():
return 1, 2, 3
a, *b = test()
print(a, b) # 1 [2, 3]
变量a赋值为1, 变量b前面有一个星号,剩余的2, 3 将被解包为列表
2.2 遍历字典
my_dic = {
'一': 1,
'二': 2,
'三': 3
}
for item in my_dic.items():
print(item)
# 解包
for key, value in my_dic.items():
print(key, value)
2.3 传递参数
def func(*args):
print(sum(args))
a = (2, 4, 6)
func(*a) # 将元组解包成可变参数
def func_2(**kwargs):
for key, value in kwargs.items():
print(key, value)
b = {'一': 1, '二': 2}
func_2(**b) # 将字典解包成关键字参数
使用解包技术,可以将元组解包成可变参数,将字典解包成关键字参数,这种技术在实践中大量应用,比如使用python操作redis时,如果你想一次性向集合中添加多个值,就必须使用解包结束传入参数
import redis
from conf.redis_conf import RedisConfig, QueueConfig
r = redis.Redis(host=RedisConfig.host, port=RedisConfig.port,
password=RedisConfig.password, db=RedisConfig.db)
tup = ('apple', '谷歌', '阿里', '腾讯')
r.sadd('my_set', *tup)
sadd的方法定义如下
def sadd(self, name, *values):
"Add ``value(s)`` to set ``name``"
return self.execute_command('SADD', name, *values)
如果不使用解包技术,就只能在调用sadd方法时手动逐个写入参数,耗时又费力
2.4 合并两个字典
巧妙的利用解包技术,可以简单方便的将两个字典合并到一个新字典中
dic_1 = {'一': 1}
dic_2 = {'二': 2}
dic_3 = {**dic_1, **dic_2}
print(dic_3) # {'一': 1, '二': 2}
python元祖封包_python的封包与解包相关推荐
- python元祖用法_Python序列(列表list和元组tuple)用法完全攻略
所谓序列,指的是一种包含多项数据的数据结构,序列包含的多个数据项(也叫成员)按顺序排列,可通过索引来访问成员. Python 的常见序列类型包括字符串.列表和元组.前一章介绍过的字符串,其实就是一种常 ...
- python元祖格式_python中元祖
1.认识元祖 1.什么是元祖 使用()将多个元素括起来,多个之间用逗号隔开. a. 容器,可以同时存储多个数据,不可变的,有序 不可变 --->不能增删改 有序 --->可以通过下标获取元 ...
- python元祖用法_Python中元祖的用法
元祖tuple(,) 元祖就是不可变的列表,元祖用()表示,元素与元素之间用逗号隔开,数据类型没有限制.tu = ('科比','詹姆斯','乔丹') tu = tuple('123') 小括号中有一个 ...
- python元祖修改_Python列表的增删改查和元祖
一.定义列表 1.names = ['mike','mark','candice','laular'] #定义列表 2.num_list = list(range(1,10)) #range生成1-1 ...
- python元祖切片_Python
Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: 实例(P ...
- python元祖迭代_python *式语法在迭代一个元组序列时的逻辑?
九州编程 我猜想你的困惑可能是为什么:bar hello结果没有出现?因为你的records第二项写错了: ('batr', 'hello') 应该是 ('bar', 'hello'),In [1]: ...
- python元祖封包_Python基础——解包与封包
1.python封包 将多个值赋值给一个变量时,Python会自动将这些值封装成元组,这个特性称之为封包 a = 1,2,3 print(a,type(a)) 返回 (1, 2, 3) 当函数返回多个 ...
- python的元祖类型_python元组类型
元组类型简介 使用括号包围的数据结构是元组(tuple).例如: >>> (1,2,3) (1, 2, 3) >>> T = (1,2,3,) >>&g ...
- python元祖组成字典_Python之旅第四天(列表、元祖、字典和习题)
第四天,感觉时间还是过得很快,今天内容确实有点多,关于list的方法实在是太多了,元组tuple感觉有点鸡肋,可能得到后面才知道他的作用吧,然后是字典,看了很多关于字典的介绍,但是这货到底是干啥用的一 ...
- python元祖_python元祖基本操作
#-*- coding:utf-8 -*- # 创建空元组 # temp1 = (); # 如果元祖中只包含一个值,需用逗号隔开消除歧义 # temp1=(1,) # 元祖的基本操作 # 访问元祖,可 ...
最新文章
- cmake编译安装完成后 执行cmake --version报错 bash: /usr/bin/cmake: 没有那个文件或目录
- 盖茨、奥巴马、马斯克账号被黑,推特遭大规模黑客攻击
- c dup 函数
- 如何让网站被百度谷歌快速收录
- Club Web Site-Customized web controls
- java8 list切片_Java8新特性_创建 Stream、流筛选与切片
- 入门程序之入门代码编写
- CRM----管理软件分析(	ERP/CRM/OA)
- CDA数据分析师 - 备考指南
- 三菱PLC项目案例学习之PLC控制伺服或步进电机带动丝运行案例
- 【供应链案例】解密可口可乐供应链管理策略,揭头部饮料企业成功之道
- vs2015编译vtk
- mysql拼接两列数据_Mysql合并两列数据
- 笔记本计算机运行程序,这几招让你的笔记本电脑运行速度变快 必学技巧
- 优动漫PAINT安装教程
- 计算机函数sumif实例,Excel2019中SUMIF函数的语法及使用方法与实例
- linux lpte_PC并行口LPT的IO操作(基于WinIo)
- 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动
- CPU的主频/核心数
- java基础知识粗略整理