Python 中,单星号(*)和双星号(**)除了作为“乘”和“幂”的数值运算符外,还在列表、元组、字典的操作中有着重要作用。

150 阅读1分钟

小例子

_list = [1,2,3,6]
_tuple = (1,2,4,5)
_dict = {'a':1,'b':5,'c':6}
_arange = np.arange(3,8)
print(_list,'==================',*_list)
print(_tuple,'==================',*_tuple)
print(_dict,'==================',*_dict)
print(_arange,'==================',*_arange)

image.png

一、列表、元组前面加星号(*)

列表前面加星号作用是将列表解开(unpacke)成多个独立的参数,传入函数。 ``

def add(a, b):
    return a + b
 
data = [7, 8]
print(add(*data)) # 15

import numpy as np
print(np.arange(3,6)) # [3 4 5]
 
list2 = [3, 6]
print(np.arange(*list2)) # [3 4 5]

二、字典(dict)前面加两星号(**)

1、字典前面加两个星号,是将字典解开成为独立的元素作为实参

def add(a, b):
    return a + b
data = {'a':8, 'b':9}
print('add(**data)=====',add(**data))
print('add(*data)=====',add(*data))

image.png

2、字典中的key和函数中的参数名,保持一致

这个地方key和add函数的参数名不一致,就出现了错误

image.png

image.png