gpt4 book ai didi

python - 解压字典以作为关键字参数传递时,如何将键映射到不同名称的关键字参数?

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:58 25 4
gpt4 key购买 nike

假设我有一些代码:

def test(a, b, **kwargs):
print(kwargs)

l = {'a': 0, 'c': 1, 'foo': 2, 'bar': 3}

我想做的是将解压缩的字典传递给函数,但将其键 c 映射到参数 b,同时保留任何其他键不直接对应kwargs中的一个参数,所以函数应该输出{'foo': 2, 'bar': 3}。如果我执行 test(b=l['c'], **l),键 c 保留在 kwargs 中,输出如下所示:{ 'foo': 2, 'bar': 3, 'c': 1}test(**l) 显然会因错误而崩溃 - test() 缺少 1 个必需的位置参数:'b'

这怎么可能?

最佳答案

你想要的是不可能的。只需在将字典传递给调用之前对其进行操作即可:

b = l.pop('c')
test(b=b, **l)

l['b'] = l.pop('c')
test(**l)

test(**{'b' if k == 'c' else k: v for k, v in l.items()})

所有这些都将字典传递给 ** 语法,其中没有 c 键。

关于python - 解压字典以作为关键字参数传递时,如何将键映射到不同名称的关键字参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com