小程序页面之间进行传值的操作办法
720
2022-09-02
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~