zip
x = ['a','b','c']
y = [1,2,3]
z = zip(x,y)
print(z)
#>[('a', 1), ('b', 2), ('c', 3)]
#魔法般的解压方式
x,y,z = zip(*z)
拆分
def add(x,y):
return x+y
a = 2
b = 3
c = [2,3]
add(2,3)
#等同于
add(*[2,3])
可变参数
def magic(*args,**kwargs):
print('unnamed args:',args)
print('keyword args:',kwargs)
arguments = (1,2)
kw_arguments = {'key2': 23333, 'key1': 'hello'}
magic(1,2,key1='hello',key2=23333)
#等同于
magic(*arguments,**kw_arguments)
(‘unnamed args:’, (1, 2))
(‘keyword args:’, {‘key2’: 23333, ‘key1’: ‘hello’})
默认参数
def Xmagic(a1,a2='default',*args,**kwargs):
print('unnamed args:',args)
print('keyword args:',kwargs)
print('a1:',a1)
print('a2=',a2)
>>> Xmagic('arguement 1',*[],**kw_arguments)
unnamed args: ()
keyword args: {'key2': 23333, 'key1': 'hello'}
a1: arguement 1
a2= default
>>> Xmagic('arguement 1',*arguments,**kw_arguments)
unnamed args: (2,)
keyword args: {'key2': 23333, 'key1': 'hello'}
a1: arguement 1
a2= 1
>>> Xmagic('arguement 1',key3='hello',*arguments,**kw_arguments)
unnamed args: (2,)
keyword args: {'key2': 23333, 'key1': 'hello', 'key3': 'hello'}
a1: arguement 1
a2= 1
>>> Xmagic('argument 1','argument 2',key3='hello',*arguments,**kw_arguments)
unnamed args: (1, 2)
keyword args: {'key2': 23333, 'key1': 'hello', 'key3': 'hello'}
a1: argument 1
a2= argument 2
Notes
未命名的参数一定写在传参的前面,keywords一定写在后面