python中变量前的单星号和双星号有什么区别?

Che*_*che 5 python variables

data = pd.read_csv("customers.csv")

print("Wholesale customers dataset has {} samples with {} features each."
      .format(*data.shape))
Run Code Online (Sandbox Code Playgroud)

在此之后,我得到了数据的维数。但我想知道 Python 中变量前星号的用法是什么。

Lag*_*aer 5

单个星号将采用一个元组(或者通常是任何迭代器,例如列表)并将其扩展为一系列参数,如下所示:

def multiply_two_numbers(x, y):
    return x * y


my_tuple = (3, 4)

multiply_two_numbers(my_tuple) # gives an error

multiply_two_numbers(*my_tuple) # gives 3 * 4 = 12
Run Code Online (Sandbox Code Playgroud)

双星号做了类似的事情,但用字典代替,并用关键字参数代替位置参数:

def say_my_name(first_name="", last_name=""):
    print(first_name + " " + last_name)


some_guy = {"first_name": "Homer", "last_name": "Simpson"}

say_my_name(**some_guy) # will print "Homer Simpson"
Run Code Online (Sandbox Code Playgroud)