问题标签 [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.
python - Python 语句中的语法查询
是 Python 中的列表推导式,用于按升序对数组进行排序,同时使用每个位置的值乘以从 1 开始的索引
所以 [4, 3, 1] 将根据 [4*1, 3*2, 1*3] 进行排序,给出 [1, 4, 3]。
我试图理解: 1. 代码中的 _ 是如何工作的 2. *x 如何将值与其索引相乘(由于枚举有 1 作为参数,我假设这是基于 1 的索引的方式照顾)。
python - 将元组传递给接受 *args 和 **kwargs 的函数
我有两个功能:
我希望能够将来自 foo2 的列表和字典作为 foo 中的 args 和 kwargs 传递,但是当我使用它时
或者
foo2 返回的元组被分配给 *args。我应该如何正确地做到这一点?
python - 在打印语句中解包参数
我想知道是否有办法在打印语句中解压缩值,就像在函数中解压缩参数一样f
这有效:
但是,我想避免使用多个er[x]
,而是使用如下所示*er
的内容:
我试过了:
但是最后一行会生成“SyntaxError:无效语法”错误。
有任何想法吗?
python - 解压字典并作为关键字参数传递给函数
我正在尝试在 python 中将一些 dict 解压缩到一些函数中:
我有一个packet
作为参数的函数(应该是dict)
我这样称呼它:
发布功能,在第 3 方 api(Google Pub/Sub API)中,从我查看的源代码来看:
它接受 **attrs 以便将所有关键字参数传递给另一个函数。
目前..我的 queue() 函数不起作用。
如果可能的话,我如何修复我的函数以将dict 参数queue()
解压缩成可以接受的东西?packet
publish()
谢谢!
编辑:
我得到了一些错误信息。
为了:
我得到:TypeError: 1 has type <class 'int'>, but expected one of: (<class 'bytes'>, <class 'str'>)
为了:
我得到:publish() takes from 2 to 3 positional arguments but 4 were given
为了:
我得到:TypeError: queue() takes 1 positional argument but 2 were given
并为:
我得到:TypeError: publish() takes from 2 to 3 positional arguments but 4 were given
编辑2:
正如@gall 正确建议的那样,这是我发送的数据,拆包没有问题。使用此功能:
当我只用字符串调用它时它起作用:
谢谢你们!
python - 将两个变量的函数写成一个变量中的函数
假设我有以下两个变量中的函数 -
我想把它写成 -
其中 x 这里是两个变量的向量;如果可能的话?
谢谢你的帮助!
python - python的解包操作符*和**是如何使用的?
unpacking/splat 运算符在 python 版本(2.7、3.x < 3.5*
和**
3.x >= 3.5)中的适用性差异很大。
例如:
我错过的各种版本之间是否还有差异?我正在查看 PEP 和自述文件,但文档没有详细说明。
ruby - ruby 如何解包传递给 Proc 的参数?
根据https://ruby-doc.org/core-2.2.0/Proc.html,上面的代码非常直观, a_proc[2,2,4,3]只是a_proc.call(2,2 ,4,3)隐藏“呼叫”</p>
但是以下(效果很好)让我很困惑
它似乎与普通的函数调用非常不同,因为它不检查传入的数字参数。
但是,正如预期的那样,如果同样使用参数,方法调用语义将引发错误
我不认为这种不一致是设计故障,因此对此的任何见解都将受到赞赏。
python - Jython 中自定义字典/映射的奇怪解包
我在 Jython 中遇到了一个奇怪的字典/映射解包行为。最初,在 SQLAlchemy 的上下文中,但我设法将其缩小到以下最小示例:
现在我运行这个测试代码:
在 Python 2.7 中,我得到了我所期望的:
但是在 Jython 2.7.0 中,我得到了这个:
已访问键名的 CustomMapping 实例
访问了键 _some_stuff 的 CustomMapping 实例
为更多键访问了 CustomMapping 实例
在调试器中设置断点还可以确认,在解包过程中,外部字典中的每个键都会访问实例__getitem__
方法。CustomMapping
这非常令人费解,只发生在 Jython 中,对我来说就像一个错误。虽然上面的示例dict
用作外部函数,但任何其他函数都可以。
我希望有人可以阐明这种行为。在我的真实上下文中,这在我的 SQLAlchemy 驱动的应用程序中引起了一些讨厌的行为。任何帮助是极大的赞赏。
python - *a, b, c = line.split() 中的星号有什么作用?
假设line
是:"Chicago Sun 01:52"
。
做什么*a, b, c = line.split()
?特别是星号的意义是什么?
编辑:经测试,似乎"Chicago"
,"Sun"
和"01:52"
都存储在a
,b
和c
. 星号似乎导致"Chicago"
作为列表的第一个元素存储在 a 中。所以,我们有a = ["Chicago"]
和。在这种情况下,任何人都可以指出有关星号运算符功能的材料吗?b = "Sun"
c = "01:52"
python - 如何解压列表列表?
这可能是一个重复的问题,但我想知道有没有办法解压缩列表列表并从解压缩的结果中创建一个变量?我在文件中有一个数据,例如:
所以我打开一个文件并将其列为列表
输出:
[416213688, 422393399, 190690902, 81688], [94925847, 61605626, 346027022], [1035022, 1036527, 1038016]
这是我程序下一步需要的输出。但是我不能使这个结果a
变量进一步使用它。SyntaxError: can't use starred expression here
如果我尝试,它会给我一个:
我尝试使用 来制作它zip
,但它给了我不正确的输出,类似于问题zip 函数给出不正确的输出中描述的内容。
那么有什么方法可以解压缩列表并获得如下输出:
如果我使用 itertools 我得到:
这不是必需的