Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 复制到lambda中的新变量_Python_Lambda - Fatal编程技术网

Python 复制到lambda中的新变量

Python 复制到lambda中的新变量,python,lambda,Python,Lambda,在pythonlambda函数中是否可以执行以下操作?如果是这样,这样的事情怎么可能实现呢 def modify(**kwargs): from copy import deepcopy new_kwargs = deepcopy(kwargs) new_kwargs['x'] = new_kwargs['x'] * 2 return new_kwargs 您只需创建一个新的dict并返回它,而无需命名。例如: >>> modify = lam

在python
lambda
函数中是否可以执行以下操作?如果是这样,这样的事情怎么可能实现呢

def modify(**kwargs):
    from copy import deepcopy
    new_kwargs = deepcopy(kwargs)
    new_kwargs['x'] = new_kwargs['x'] * 2
    return new_kwargs

您只需创建一个新的
dict
并返回它,而无需命名。例如:

>>> modify = lambda **kwargs: dict(kwargs, **{'x':kwargs['x']*2})
>>> modify(x=4)
# {'x': 8}

使用Python 3.8的赋值表达式,您可以半合理地完成等效的操作:

>>> from copy import deepcopy
>>> modify = lambda **kwargs: dict(new_kwargs := deepcopy(kwargs), x=new_kwargs['x']*2)
>>> modify(x=4)
{'x': 8}
但是,这会创建一个额外的浅拷贝,这并没有什么好的理由。它也不是很可读


撇开将lambda指定给一个名称是违反样式指南的事实不谈(因为它违背了它的单一用途),我只会坚持使用您的完整函数定义,因为它更清晰、更高效。

不过,这不会再进行深度复制了。我不知道你为什么要做深度复制,但是如果你需要它,那么,现在你没有了。可能不干净。为什么不直接使用已经起作用的功能呢?