python语句:print(*[1,2,3]),是什么意思?

发布网友 发布时间:2022-04-23 14:46

我来回答

2个回答

热心网友 时间:2022-04-06 09:02

题主你好,

星号后跟着一个列表, 学名叫Unpacing Argument Lists, 直译过来就是解包参数列表.

先举个例子来看吧:

   

上面定义了一个带有三个参数a,b,c的函数example; 还有一个元素为3,6,9的列表.

此时我们要调用example这个函数,让它输出3,6,9 则我们可以有以下几种写法:

    1.直接传参:

    2.使用解包参数列表:

 

    3.还是使用解包参数列表,但是以变量的形式:

上面三种写法得到的结果是一样的:

总结: *号后跟上一个列表,叫做"解包参数列表", 它主要用于函数调用, 直接看如果不好理解,则可以看展开后的形式, 即 print(*[1,2,3])这样不好理解的话, 把列表展开了, 则变成print(1,2,3)这样看就清楚多了.

另外, 还有一个双星的形式, 即**后跟变量名, 基本上也是用于函数调用时传参, 不同的是单星用于位置参数(所谓位置参数说白了就是上面example函数定义中写的a,b,c这种), 双星用于关键字参数(这里不作讨论).

网官相关说明截图:

=====

希望可以帮到题主, 欢迎追问.

热心网友 时间:2022-04-06 10:20

[1,2,3]是一个列表,里面有3个元素。

你可以理解成列表是一个.rar压缩文件,3个元素就是3个压缩进.rar文件的文件。

而*[1,2,3]就是对这个压缩文件(列表)解压缩,自然会释放出3个文件(元素)。

此外,元组、集合、字典、字符串也可以解压缩,像:

print(*(1,2,3))

print(*[1,2,3])

print(*{1,2,3})

print(*{1:"a",2:"b",3:"c"})

print(*"123")

都可以产生相同的结果。

你可以将它们理解成是不同格式(.rar、.zip、.7z等)的压缩文件,如果里面的内容是相同的,解压出来的文件自然也是相同的。

下图是一个例子:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com