问题标签 [argument-unpacking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
126 浏览

python-3.x - Python- 在 Pandas Slicer 中解压列表

我写了一个类似下面的函数。该函数需要一个多级数据框。column_name参数可以是 ['Deal Name','Deal Expense']。要过滤多级数据框,我需要在数据框过滤器中解压缩 column_name 列表。

我希望类似的东西df[*column_name].loc[row_name] 会起作用,但它没有。

更多信息:我正在尝试访问多级数据框。column_name[0] 是我想要在级别 0 上的列的名称,column_name[1] 是我想要在级别 1 上的列的名称,依此类推。

这个函数可以完成这项工作,但是写起来真的很傻。如何解压数据框切片器中的列表?

0 投票
2 回答
588 浏览

php - Splatpacking 与 array_values() 使用数字键重新索引数组

从 PHP7.4 开始,有一种新的可用技术可以用数字键重新索引数组。

我将其称为“数组重新打包”,或者可能是一些有趣的东西,例如“ splatpacking ”。简单的过程涉及使用 splat 运算符 ( ...) - 也称为“扩展运算符” - 解包一个数组,然后通过“对称数组解构”用第一级元素填充一个新数组。

比较代码:(演示

两者都会输出:

同样,splatpacking 技术严格限制于带有数字键的数组,因为 splat 运算符会阻塞其他任何内容,并且只能从 PHP7.4 及更高版本中将解压后的值直接写入数组。

由于两种技术在排位赛情况下提供相同的输出,我什么时候应该使用一种而不是另一种?

请注意,这不是关于如何重新索引键,而是array_values()与新可用技术的比较。

这不同于:

以及其他数十个询问如何重新索引数组的旧页面。

0 投票
0 回答
17 浏览

python - 未压缩关键字中的空格不会导致语法错误

在处理连接字符串属性时,我注意到 Python 的参数解包中有一个奇怪的行为。传入名称中包含空格的参数有效。

当我第一次听说参数解包时,我自然认为上面的调用是相同的。所以在上面的例子中,即使拆包也会导致错误。不是语法,但可能与非法参数有关。

强制执行字符串。

但是空字符串也可以。

显然不能在函数定义中命名参数,但我仍然想知道到底发生了什么。调用不相同。与普通关键字参数相比,是否有一些关于它们有何不同或如何处理解压缩参数的文档?因此,如果在定义、变量名和调用函数中允许使用语法,那么之后的所有内容是否已经适用于间隔参数名称?

0 投票
1 回答
312 浏览

python - Python - 方法参数中的值解包顺序

为什么这个有效

并打印出:

而这

才不是

0 投票
1 回答
254 浏览

generics - 是否可以通过 Rust 中的模式匹配来解包通用元组?

可以执行以下操作:

它可以通过以下方式执行:

实际上ab是拆包成a单独b的。

我想对泛型做类似的事情。

这是否有用我不确定如何编译它。理想情况下,我希望能够调用这样的东西:

如果没有宏,这在 Rust nightly 上是否可行?

0 投票
2 回答
264 浏览

python - 使用 * 将值打包到元组中,就像函数参数打包一样

考虑一个定义为的函数:

调用时,它将额外的位置参数打包为tuple

我想在函数参数之外实现类似的事情。所以,我想我可以通过扩展的可迭代解包来实现同样的事情,但它总是将东西打包为一个列表,而不是一个元组

使其与以下内容没有什么不同:

我可以理解,这也是PEP中提出的方式。

我在问是否有另一种方法来实现我想要的。

当然,我可以args稍后通过以下操作转换为元组:

如果这不能在分配期间直接实现。

0 投票
1 回答
304 浏览

python - 将各种长度的 Python 字典解包到 sql 查询中

我目前有一个函数,它将字典作为输入并将数据库表中的所有列作为字典返回:

这工作正常。但是,我该如何改进它:

1)我可以包含一个额外的参数,作为可变长度的列表/元组/字典,这样我就可以只提取我感兴趣的属性,而不是所有可用的指标。例如:

然而,例如,能够灵活地使用attributesWanted = ['Age', 'Height', 'ShoeSize'] if needed.

2)能够为多个人执行此操作。例如namesWanted = ['Mary', 'Joe']

最好能够使用单个字典作为函数的输入。我尝试过包含列表和元组,但遇到了诸如

TypeError:“元组”对象不是映射

0 投票
1 回答
65 浏览

python - 无效的解包参数

*args我正在阅读一个解释拆包(和)的在线文档**kwargs。遵循两个断言感到困惑,不确定为什么第二个函数无效。任何人都可以帮助我理解原因吗?

参考 https://caisbalderas.com/blog/python-function-unpacking-args-and-kwargs/

0 投票
1 回答
343 浏览

racket - 在球拍中包装关键字参数?

有没有办法将函数的关键字参数指定为字典,类似于.允许我们为位置参数提供列表的方法?我正在寻找类似于 python 的*args 和 **kwargs的东西。

更详细地说

如果我们想在一个函数中处理任意数量的位置参数,我们可以这样定义它:

并将其与可变数量的参数一起使用:

即使对于没有通过.语法显式处理位置参数的“其余”的函数,我们也可以使用apply从列表中解包位置参数。

我看到除了位置参数之外,它apply 确实在关键字参数 s 上转发。但是,这仅在被调用的函数本身识别出它所期望的特定关键字参数时才有效。例如,在函数本身不使用关键字参数而只是打算将它们转发到某个适当的处理程序的调度情况下,以这种方式使用 apply 并不能满足我们的需要,因为函数需要知道所有被分派到的函数所接受的所有关键字参数,更不用说在调用处理程序之前以某种方式重新打包它们。

作为说明问题的具体示例,请考虑一个简单的“echo args”函数,该函数回显传递给它的所有参数:

只有位置参数:

使用关键字参数:

有没有内置的方法来完成这种事情?如果没有,关于如何进行这项工作的任何想法?

0 投票
2 回答
278 浏览

python - 将任意数量的列表作为参数交错的 Python 函数

为简单起见进行了编辑,因为我已将问题指向“参数拆包”。
我正在尝试编写一个将任意数量的列表作为参数交错的函数。所有列表的长度相同。该函数应返回一个列表,其中包含交错的输入列表中的所有元素。

输出:

所需的输出: