在python中,list中的x,*y意味着什么

2024-10-01 02:25:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近遇到了一段如下所示的python代码

groups = {}
    for d, *v in dishes:
        for x in v:
            groups.setdefault(x, []).append(d)

碟子代表一个二维数组。 第一个for循环语句是什么意思? 什么是v?v前面的星号表示什么? 在使用变量之前还有什么情况是星号?在


Tags: 代码infor情况代表数组语句星号
1条回答
网友
1楼 · 发布于 2024-10-01 02:25:31

它本质上是tuple/list解包和*argsiterable解包的组合。在for循环的每次迭代中,每个iterable都被解包。在

首先让我们看一个简单的元组/列表解包:

>>> x, y = (1, 2)
>>> x
1
>>> y
2

# And now in the context of a loop:
>>> for x, y in [(1, 2), (3, 4)]:
>>>     print(f'x={x}, y={y}')
"x=1, y=2"
"x=3, y=4"

现在考虑以下内容(想象一下循环中的相同概念,如上图所示):

^{pr2}$

注意*如何允许y使用所有剩余的参数。在

这与在函数中使用*的方式类似,它允许使用未指定数量的参数,并将其全部消耗掉。 您可以看到(*args)用法的更多示例here。在

^{3}$

至于实际例子,这里有一个简单的例子:

>>> names = ("Jack", "Johnson", "Senior")
>>> fist_name, *surnames =  names
>>> prin(surnames)
["Johnson", "Senior"]

相关问题 更多 >