python的拆包(扫盲)
什么是拆包
拆包: 对于函数中的多个返回数据, 去掉元组, 列表 或者字典 直接获取里面数据的过程.
怎么拆包
1) 对列表进行拆包
my_list = [1, 3.14, "hello", True]
num, pi, my_str, my_bool = my_list
# 或者
num, pi, my_str, my_bool = [1, 3.14, "hello", True]
2) 对元组进行拆包
my_tuple = (1, 3.14, "hello", True)
num, pi, my_str, my_bool = my_tuple
3) 对字典进行拆包
my_dict = {"name":"老王", "age": 19}
ret1, ret2 = my_dict
# 得到的是key 字典是无序的
print(ret1, ret2)
结果
name age
4) 用拆包的形式定义变量
# 一次定义多个变量
num1 = 10
num2 = 20
num3 = 30
num4 = 3.14
# # 变量名和值是一一对应
num1, num2, num3, num4 = 10, 20, 30, 3.14
5) 函数返回元组时直接拆包
对元组拆包:
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age # 这一步叫做拆包:
my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)
结果
178
100
18
也可以对列表或者字典拆包:
def function1():
return [1, 2, 3]
def function2():
return {"key1": 1, "key2": 2, "key3": 3} # 调用函数,获取里面的数据
num1, num2, num3 = function1()
print(num1, num2, num3) # 调用函数,获取里面的数据
ret1, ret2, ret3 = function2()
print(ret1, ret2, ret3)
结果:
1 2 3
key1 key2 key3
注意:
拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
除了对元组拆包之外,还可以对列表、字典等拆包
对字典拆包后获取的是字典的key值, 而不是value值
python的拆包(扫盲)的更多相关文章
- Python元组拆包捡到8倍镜快准狠
元组拆包 元组是不可变列表,列表是通过索引取值的,元组也是: tuple_test = (1, 2, 3) a = tuple_test[0] b = tuple_test[1] c = tuple_ ...
- Python字节流打包拆包
Python提供了一个struct模块用于打包拆包 -------------------------------------------------------------------------- ...
- 元组拆包 与 python拆包
一.元组拆包(元组解包.迭代解包) 元组拆包可以应用到任何可迭代对象上(任何迭代对象),被可迭代对象中的元素数量必须要跟接受这些元素的元组的空档数一致.也可以使用用 * 来表示忽略多余的元素. 一般的 ...
- python中的装包与拆包
python中的装包与拆包 *args和 **kwargs是在python的代码中经常用到的两个参数,初学者对这两个参数的理解可能仅仅限于*args是用于接收多余的未命名参数,**kwargs用于接收 ...
- Python学习手册之元组拆包、三元运算符和 else 语句深入
在上一篇文章中,我们介绍了 Python 之禅. Python 编程规范和函数参数,现在我们介绍 Python 的元组拆包.三元运算符和对 Python 的 else 语句深入讲解.查看上一篇文章请点 ...
- Python标准库(3.x): 内建函数扫盲
Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod ...
- 扫盲贴000---关于python中的if __name__ == '__main__'
对于python中的__name__变量,根据调用python文件的方式不同,__name__变量的值也会不同.假如我有一个名为hello_world.py的python脚本,当我的目的是直接运行这个 ...
- Python 扫盲
yield使用浅析 菜鸟教程:http://www.runoob.com/w3cnote/python-yield-used-analysis.html #!/usr/bin/python # -*- ...
- Python基础学习----拆包
拆包,多用在多值参数种. 1.多值参数. 有时候,在函数的参数转递时,不单只传输单个字符的参数,比如有元组和字典的参数,这时候我们就使用多值参数. *args 代表元组的多值参数 *kwargs 代表 ...
随机推荐
- php 文件锁解决并发问题
阻塞(等待)模式: <?php $fp = fopen("lock.txt", "r"); if(flock($fp,LOCK_EX)) { //.. d ...
- 黑马oracle_day02:04.oracle对象&&05.oracle编程(a)
01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象&&05.oracle编程(a) 05.oracle编程(b) 04.orac ...
- UML-SSD总结
1.不是所有场景都需要画SSD.需要画SSD的场景: 1).主成功场景 2).频繁发生的场景 3).复杂的场景 2.角色 1).参与者 2).系统(没有类,即黑盒) 3.画SSD时间不要过长,一般几分 ...
- mysql引擎与物理文件
SELECT VERSION();show GLOBAL VARIABLES like '%PARTITION%';-- 查看分区情况 show GLOBAL VARIABLES like '%dat ...
- 吴裕雄--天生自然Linux操作系统:Linux常用命令大全
系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) ...
- Thymeleaf标签学习
目录 Thymeleaf Thymeleaf的特点 SpringBoot与之整合 Thymeleaf常用语法 变量_变量案列 变量_动静结合 变量_ognl表达式的语法糖 变量_自定义变量 方法 方法 ...
- javascript 的七种基本数据类型
六种基本数据类型 undefined null string boolean number symbol(ES6) 一种引用类型 Object 为什么要引入 Symbol? ES5的对象中的属性名是字 ...
- Gitbook在 Mac 环境上的安装及使用
一.在 Mac 环境上搭建 gitbook #.安装node.js,在node.js官网下载,直接安装稳定版本. https://nodejs.org/en/ #.检测 node.js 是否安装成功 ...
- GSON解译Json为DTO
除了用okhttp网络库外,还用到google的gson库. 1. uti类的对象一般都用懒汉模式.这次gson也是用懒汉模式. public class GsonTools { private st ...
- poj-2828 Buy Tickets(线段树,排队问题,逆向思维)
题目地址:POJ 2828 Buy Tickets Description Railway tickets were difficult to buy around the Lunar New Yea ...