[python]中的* 和**
2019-04-28 本文已影响0人
VanJordan
-
*a
可以理解为将一个串用逗号隔开的变量变换成列表,并用a
作为列表的名字
def adder(*num):
sum = 0
for n in num:
sum = sum + n
print("Sum:",sum)
adder(3,5)
adder(4,5,6,7)
adder(1,2,3,5,6)
-
**a
可以理解为将一个串用逗号隔开的赋值操作变换成字典,其中赋值操作的左边是key
,右边是value
,并用a
作为这个字典的名字.
def intro(**data):
print("\nData type of argument:",type(data))
for key, value in data.items():
print("{} is {}".format(key,value))
intro(Firstname="Sita", Lastname="Sharma", Age=22, Phone=1234567890)
intro(Firstname="John", Lastname="Wood", Email="johnwood@nomail.com", Country="Wakanda", Age=25, Phone=9876543210)
-
*
星号操作是解包
a = [1,2,3,4]
print(*a)
>>> 1 2 3 4
-
zip
中的*
是apply
操作拿走list
,然后将list
中的元素当做输入的参数
a = [1,2,3,4]
b = [5,6,7,8]
print(*zip(a,b))
>>> (1, 5) (2, 6) (3, 7) (4, 8)
- 普通的解包
a = [1,2,3,4]
b = [5,6,7,8]
d,f,g,h = zip(a,b)
print(d)
>>> (1, 5)