2024-10-01 02:25:31 发布
网友
我最近遇到了一段如下所示的python代码
groups = {} for d, *v in dishes: for x in v: groups.setdefault(x, []).append(d)
碟子代表一个二维数组。 第一个for循环语句是什么意思? 什么是v?v前面的星号表示什么? 在使用变量之前还有什么情况是星号?在
它本质上是tuple/list解包和*argsiterable解包的组合。在for循环的每次迭代中,每个iterable都被解包。在
*args
首先让我们看一个简单的元组/列表解包:
>>> 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"
现在考虑以下内容(想象一下循环中的相同概念,如上图所示):
注意*如何允许y使用所有剩余的参数。在
*
y
这与在函数中使用*的方式类似,它允许使用未指定数量的参数,并将其全部消耗掉。 您可以看到(*args)用法的更多示例here。在
(*args)
至于实际例子,这里有一个简单的例子:
>>> names = ("Jack", "Johnson", "Senior") >>> fist_name, *surnames = names >>> prin(surnames) ["Johnson", "Senior"]
它本质上是tuple/list解包和
*args
iterable解包的组合。在for循环的每次迭代中,每个iterable都被解包。在首先让我们看一个简单的元组/列表解包:
现在考虑以下内容(想象一下循环中的相同概念,如上图所示):
^{pr2}$注意
*
如何允许y
使用所有剩余的参数。在这与在函数中使用
^{3}$*
的方式类似,它允许使用未指定数量的参数,并将其全部消耗掉。 您可以看到(*args)
用法的更多示例here。在至于实际例子,这里有一个简单的例子:
相关问题 更多 >
编程相关推荐