对于一堆资料,我们可以把它分给不同的人使用,这个分散的过程,我们可以看成是解包方法是实现。当然实际python解包的使用会相对复杂一点,我们会对常见的列表、函数等进行操作。下面我们就Python解包的使用进行说明,然后带来两种解包方法的详解,大家一起往下看。
1、使用说明
(1)解包的意义就是将传递给函数的一个列表,元组,字典,拆分成独立的多个元素然后赋值给函数中的形参变量。
(2)解包字典有两种解法,一种用*解的只有key,一种用**解的有key、value。但是这个方法**只能在函数定义中使用。
2、*方法
字典解包后,只会把字典的key取出来,value 则丢掉了。
(1)列表解包
a, b, c = [1, 2, 3] print(a, b, c) # 1 2 3
(2)元祖解包
a, b, c = (1, 2, 3) print(a, b, c) # 1 2 3
(3)字符串解包
a, b, c = "abc" print(a, b, c) # a b c
(4)字典解包
a, b, c = {"a": 1, "b": 2, "c": 3} print(a, b, c) # a b c
接收函数返回值
def test(): return 1, 2, 3 a, b, c = test() print(a, b, c) # 1 2 3
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 将被解包为列表。
知识点扩展:
了解解包,首先要了解什么是参数。比如我们要运行ex1.py这个文件,我们可以在命令行(徽标键+r)中输入命令“pyhton ex1.py”即可运行,但注意要先进入到py文件所在路径。其中,ex1.py便是参数。下面以一个可以接受参数的脚本为例来阐述相关知识。
from sys import argv #import语句目的是将python功能引入脚本当中,一看“import”,就知道程序使用了哪些功能 #argv是“参数变量”的意思,这是一个非常标准的编程术语。这个变量包含了用户传递给python的参数 #用“import”导入进来的功能称为“模组(modules)”(也有人叫作“库”)。 script,first,second,third = argv #上面一行作用是给argv“解包(unpack)”,即一次性将所有参数赋予变量名 #可理解为将argv中的东西解包,即将所有的参数依次赋予左边的变量名 print("the script is called:", script) print("your first variable is:",first) print("your second variable is:",second) print("your third variable is:",third)