以下代码在Python中可以很好地工作:
def f(x,y,z): return [x,y,z]
a=[1,2]
f(3,*a)
将a
get的元素解压缩,就好像您已调用它一样f(3,1,2)
,它会返回[3,1,2]
。精彩!
但是我无法将的元素a
分解为 前 两个参数:
f(*a,3)
而不是像这样调用f(1,2,3)
,我得到“ SyntaxError:只有命名参数可以跟随* expression”。
我只是想知道为什么一定要那样做,如果有什么聪明的窍门,我可能不知道在不求助于临时变量的情况下将数组解压缩到参数列表的任意部分。
正如Raymond Hettinger的答案所指出的那样,Python 3
可能会
对此进行更改,这是一个相关的建议,该建议已被接受。尤其与当前问题相关,这是讨论的对该提案的可能更改之一:
只允许将带星号的表达式作为exprlist中的最后一项。这将稍微简化解压缩代码,并为加星标的表达式分配一个迭代器。此行为被拒绝,因为这太令人惊讶了。
因此,使用解包函数参数进行限制有一些实现原因,但确实有些令人惊讶!
同时,这是我正在寻找的解决方法,回想起来很明显:
f(*(a+[3]))
问题内容: 在Python 2中,此代码是可以的: 但是在Python 3中发生以下错误: 如果删除lambda表达式中的括号,则会发生另一个错误: 也可以使用元组,因为单个lambda参数可在Python 3中使用,但尚不清楚(难以阅读): 如何在Python 3中以正确的方式解压值? 问题答案: 在PEP 3113中 讨论了删除元组拆包的问题。基本上,您无法在Python 3中执行此操作。在标
通常没有必要改变这个对话框的设置,而且允许 WinRAR 自动选择优化参数是安全的。请注意不正确的使用这个对话框可能导致非常严重的运行和压缩损失,所以只有在您清楚您所作的时候,才能改变它的参数。 下面的这些设置大部分仅被 RAR 4.x 压缩格式支持。这些设置都不可用于 ZIP。只有 delta 压缩和 32 为可执行压缩可用于 RAR 5.0 压缩文件。 这个对话框包含下列选项。 文本压缩/(自
问题内容: 我在想办法也无法在Java中解压缩String时遇到麻烦。这是我要学习的基本Java类,因此只需要基本命令,没有什么花哨的地方。它能够输入的目标 在命令提示符下,它将打印(就像它压缩参数字符串一样)。 另一个目标是输入 它将打印(就像它将解压缩参数String一样)。减压是我遇到的问题。这是我的代码,非常感谢我得到的任何帮助。 问题答案: Quick Code for you..
4.2. 使用可选参数和命名参数 Python 允许函数参数有缺省值;如果调用函数时不使用参数,参数将获得它的缺省值。此外,通过使用命名参数还可以以任意顺序指定参数。SQL Server Transact/SQL 中的存储过程也可以做到这些;如果你是脚本高手,你可以略过这部分。 info 函数就是这样一个例子,它有两个可选参数。 def info(object, spacing=10, coll
问题内容: 在PHP 4/5中是否可以在调用时指定一个命名的可选参数,从而跳过您不想指定的参数(例如在python中)? 就像是: 谢谢 问题答案: 不,这是不可能的:如果要传递第三个参数,则必须传递第二个参数。并且命名参数也不可能。 一种“解决方案”是只使用一个参数,一个数组并始终传递它……但不要总是在其中定义所有内容。 例如 : 并这样称呼: 将获得以下输出: 但是我真的不喜欢这个解决方案:
本文向大家介绍Lua 命名参数,包括了Lua 命名参数的使用技巧和注意事项,需要的朋友参考一下 示例