*
运算符在Python中是什么意思,例如like zip(*x)
或代码f(**k)
?
单颗星*
将序列/
集合解压缩为位置参数,因此你可以执行以下操作:
def sum(a, b):
return a + b
values = (1, 2)
s = sum(*values)
这将打开元组的包装,使其实际执行为:
s = sum(1, 2)
双星 **
只使用字典并因此命名参数来做同样的事情:
values = { 'a': 1, 'b': 2 }
s = sum(**values)
你还可以结合:
def sum(a, b, c, d):
return a + b + c + d
values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = sum(*values1, **values2)
将执行为:
s = sum(1, 2, c=10, d=15)
另请参见Python文档的4.7.4-解包参数列表。
另外,你可以定义要接受的函数*x
和**y
参数,这使函数可以接受声明中未专门命名的任何数量的位置和/
或命名参数。
例:
def sum(*values):
s = 0
for v in values:
s = s + v
return s
s = sum(1, 2, 3, 4, 5)
或搭配 **
:
def get_a(**values):
return values['a']
s = get_a(a=1, b=2) # returns 1
这可以使你无需声明它们即可指定大量可选参数。
再一次,你可以结合:
def sum(*values, **options):
s = 0
for i in values:
s = s + i
if "neg" in options:
if options["neg"]:
s = -s
return s
s = sum(1, 2, 3, 4, 5) # returns 15
s = sum(1, 2, 3, 4, 5, neg=True) # returns -15
s = sum(1, 2, 3, 4, 5, neg=False) # returns 15
问题内容: 在Python中像在C中一样具有特殊含义吗?我在Python Cookbook中看到了这样的函数: 你能向我解释一下还是指出我在哪里可以找到答案(Google将解释为通配符,因此我找不到令人满意的答案)。 问题答案: 假设知道位置和关键字参数是什么,下面是一些示例: 范例1: 如你在上面的示例中所见,函数签名中仅包含参数。由于d和k不存在,因此将它们放入字典。该程序的输出为: 范例2:
本文向大家介绍双问号(??)运算符在PHP中是什么意思?,包括了双问号(??)运算符在PHP中是什么意思?的使用技巧和注意事项,需要的朋友参考一下 PHP 7添加了新的运算符双问号(??)运算符。在PHP 7中,双问号(??)运算符称为Null合并运算符。 如果它存在且不为NULL,则返回其第一个操作数;否则返回第一个操作数。否则,返回其第二个操作数。从左到右评估。Null合并运算符也可以链形式使
VS2015预览版中有了C#6.0,我们有了一个新的操作符,
问题内容: 我正在使用以这种方式“拉平”列表列表: 这跟说的有什么不同? 问题答案: 是“ splat”运算符:它接受一个列表作为输入,并将其扩展为函数调用中的实际位置参数。 所以如果,那就 这与传递just显然不同。对于你的情况,你有一个要拼合的列表列表;什么确实是在所有你传递给它的位置参数,其中每个位置参数是在自己的权利迭代拼接返回一个迭代。 换句话说,你希望将每个列表作为参数传递给,这会将它
问题内容: 当我尝试在中使用语句时,它给了我这个错误: 这意味着什么? 问题答案: 此错误消息表示你尝试使用Python 3遵循示例或运行使用Python 2 print语句的程序: 上面的语句在Python 3中不起作用。在Python 3中,你需要在要打印的值周围添加括号: “ 对的调用中缺少括号”是Python 3.4.2中新增的一条错误消息,主要用于帮助试图在运行Python 3时遵循Py
当我尝试在Python中使用语句时,它会给我这个错误: 那是什么意思?