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

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


print("Wholesale customers dataset has {} samples with {} features each."

      .format(*data.shape))

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


慕桂英546537
浏览 114回答 4
4回答

素胚勾勒不出你

单个星号将采用元组(或通常任何迭代器,如列表)并将其扩展为一系列参数,如下所示:def multiply_two_numbers(x, y):    return x * ymy_tuple = (3, 4)multiply_two_numbers(my_tuple) # gives an errormultiply_two_numbers(*my_tuple) # gives 3 * 4 = 12双星号做了类似的事情,但用字典代替,用关键字参数代替位置参数: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"

月关宝盒

Python 有一种非常有趣的处理函数参数的方式(我个人非常喜欢)。如果我们定义一个新函数def myFunc(*args, **kwargs):    print(args, kwargs)我可以用myFunc(1, 2, 3, 4, a = 'a', b = 'b')并获得输出([1, 2, 3, 4], {'a': 'a', 'b': 'b'})为了具体回答你的问题,我也可以这样调用函数myFunc(*[1, 2, 3, 4], **{'a': 'a', 'b': 'b'})并获得完全相同的输出我还可以使用星号传递位置参数def add(x, y):   return x + y并调用它nums = [1, 2]print(add(*nums))标准输出:3如您所见,1 和 2 分布在函数参数中。TDLR* 将列表解包为参数, ** 将字典解包为关键字参数*,如果您也想引用它,则**相当于其他一些语言。...

慕丝7291255

人们已经为你在争论中提供了保障,而星号通常在其他情况下不起作用(见本文末尾)。但是还有另一种使用星星的方法,那就是变量解包。>>> a, b, c = [1,2,3]>>> print(a,b,c)1 2 3到目前为止,一切都很好。但是如果你现在只想分配a呢?您可以捕获带星号的变量中剩余的内容。a, *rest = [1,2,3]>>> print (a, "and the rest", rest)1 and the rest [2, 3]一个不起作用的例子:>>> li = [1,2,3]>>> var = *li&nbsp; File "<stdin>", line 1SyntaxError: can't use starred expression here

叮当猫咪

the_list&nbsp;=&nbsp;[1,&nbsp;3,&nbsp;4]相比print(the_list)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;prints&nbsp;the&nbsp;list&nbsp;as&nbsp;is;&nbsp;&nbsp;&nbsp;1&nbsp;parameter[1,&nbsp;3,&nbsp;4]随着使用*print(*the_list)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;performs&nbsp;print(1,&nbsp;3,&nbsp;4);&nbsp;3&nbsp;parameters1&nbsp;3&nbsp;4the_dict&nbsp;=&nbsp;{"sep":&nbsp;"---",&nbsp;"end":&nbsp;"&nbsp;#END#"}相比print(5,&nbsp;6,&nbsp;the_dict)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;after&nbsp;5&nbsp;and&nbsp;6&nbsp;prints&nbsp;the_dict&nbsp;as&nbsp;is5&nbsp;6&nbsp;&nbsp;{'sep':&nbsp;'---',&nbsp;'end':&nbsp;'&nbsp;#END#'}随着使用*print(5,&nbsp;6,&nbsp;*the_dict)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;after&nbsp;5&nbsp;and&nbsp;6&nbsp;prints&nbsp;individual&nbsp;keys&nbsp;of&nbsp;the_dict5&nbsp;6&nbsp;sep&nbsp;end并使用**print(5,&nbsp;6,&nbsp;**the_dict)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;performs&nbsp;print(5,&nbsp;6,&nbsp;sep="---",&nbsp;end="&nbsp;#END#")5---6&nbsp;#END#*最后,和的组合使用**:print(77,&nbsp;*the_list,&nbsp;**the_dict)&nbsp;&nbsp;&nbsp;#&nbsp;performs&nbsp;print(77,&nbsp;1,&nbsp;3,&nbsp;4,&nbsp;sep="---",&nbsp;end="&nbsp;#END#")77---1---3---4&nbsp;#END#
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python