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 代表 ...
随机推荐
- LeetCode——456.132模式
给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj.设计一个算法,当 ...
- 用Python3生成30万条excel数据(xlsx格式)
在B/S架构的系统测试中,有时需要通过导入excel文件来生成一些数据记录,当数据量小的时候,一般不会出现什么问题,而当导入的数据量巨大时,对系统的性能就是一个考验了.为了验证系统的性能,有时需要导入 ...
- vscode template中设置不换行
{ "workbench.colorTheme": "Dark-Dracula", "workbench.iconTheme": " ...
- IDEA中使用Lombok时候,getter,setter注解不生效/每次重启后才生效
Relevance.java代码如下: import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; imp ...
- 伯特兰·亚瑟·威廉·罗素[註 1],第三代羅素伯爵(英语:Bertrand Arthur William Russell, 3rd Earl Russell,1872年5月18日-1970年2月2日),OM,FRS,英国哲学家、数学家和逻辑学家,致力于哲学的大众化、普及化。[2] 在數學哲學上採取弗雷格的邏輯主義立場,認為數學可以化約到邏輯,哲學可以像邏輯一樣形式系統化,主張逻辑原子論。[3]
一年假. 1920年7月,罗素申請了一年假; 這被批准了.他花了一年時間在中國和日本講學.对中国学术界有相当影响. 罗素说: 对爱情的渴望,对知识的追求,对人类苦难不可遏制的同情,是支配我一生的单纯 ...
- 机器学习总结(参考源码ml.hpp)
依据机器学习算法如何学习数据可分为3类: 有监督学习:从有标签的数据学习,得到模型参数,对测试数据正确分类: 无监督学习:没有标签,计算机自己寻找输入数据可能的模型: 强化学习(reinforceme ...
- JS实现遮罩层
/* * 显示loading遮罩层 */ function loading() { var mask_bg = document.createElement("div"); mas ...
- Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_全局变量的妙用_遍历穿透
1 比如我这边写了一个函数,这个函数中有一个变量作为参数,给定这个参数一个值,然后这个函数返回给我一个值.但是,我写这函数的时候,这个传参我不写到函数里面.可以通过全局变量的方式进行在外部穿透遍历. ...
- 移植linux4.14内核到四核Exynos4412开发板
最近法师收到了很多留言,其中有一部分问法师什么时候更新,还有一大部分问法师我是买迅为的IMX6UL精英版好呢还是买4412精英版好呢,因为我们这俩个都不贵.法师的建议的是入手4412!为什么呢? 第一 ...
- [LC] 373. Find K Pairs with Smallest Sums
You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Define ...