PythonNote035---python中星号的作用

网友投稿 710 2022-09-02

PythonNote035---python中星号的作用

PythonNote035---python中星号的作用

可迭代对象的应用

一个*、迭代对象的解包

可以对字符串、元组、列表等可迭代对象进行解包

fruit = ['apple','pear','grape','banana']

*x,y=fruitprint(f"x={x},y={y}")

x=['apple', 'pear', 'grape'],y=banana

可以把list最后一个元素赋给y,其余的赋给x 对于元组同理

*x,y=(1,2,3,4,5)print(f"x={x},y={y}")

x=[1, 2, 3, 4],y=5

一个*、可迭代对象的合并

list1 = [1,2]list2 = ['a','b']print(f"list1={list1},list2={list2}")

list1=[1, 2],list2=['a', 'b']

相当于解包之后再合并,最后的结果还是一维列表。对于列表来说相当于extend

print([*list1,*list2])

[1, 2, 'a', 'b']

列表中也可做extend操作,但是会改变列表的值

list1.extend(list2)print(f"list1={list1},list2={list2}")

list1=[1, 2, 'a', 'b'],list2=['a', 'b']

两个*、字典合并

两个星号**把字典解包成关键字参数

dict1 = {"name":"jack"}dict2 = {"age":10}

{**dict1,**dict2}

{'name': 'jack', 'age': 10}

key不能重复。。。

dict2.update(dict1)

{'age': 10, 'name': 'jack'}

update直接改变原变量,有时候不合适。可以考虑上面的方法。

定义函数中星号

一个*

def test2(a, *b): print(f"a={a},b={b}") print(b) print(*b)

test2(1, 2, 3)

a=1,b=(2, 3)(2, 3)2 3

对函数传递的参数进行打包(成元组、列表或者字典)和拆解(分成单个元素),其中单用于元组和列表的打包和解包(非关键字参数)2,3作为tuple传给参数bprint(*b)时,对元组b做解压

test2(1, 2, 3,4)

a=1,b=(2, 3, 4)(2, 3, 4)2 3 4

两个*

def test3(a, **kwargs): print(f"a={a},kwargs={kwargs}") print(kwargs)

test3(a=1, b=20, c=30)

a=1,kwargs={'b': 20, 'c': 30}{'b': 20, 'c': 30}

** 就是针对关键字参数和字典的调用test3(a=1, b=20, c=30), kwargs 的值就是 {‘b’: 20, ‘c’: 30} 了。

混用

def test4(a, b=10, *args, **kwargs): print( a) print( b) print( args) print( kwargs)

test4(1, 2, 3, 4, e=5, f=6, g=7)

12(3, 4){'e': 5, 'f': 6, 'g': 7}

print(*[1,2,3])

1 2 3

2022-03-08 于南京市江宁区九龙湖

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PyPackage01---Pandas14_对类别型变量做映射
下一篇:你们知道JWT是什么吗?(Jwt是什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~