返回字典的副本,不包括指定的键

2024-09-25 14:17:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个函数,返回字典的副本,不包括列表中指定的键。

考虑到这本词典:

my_dict = {
    "keyA": 1,
    "keyB": 2,
    "keyC": 3
}

without_keys(my_dict, ['keyB', 'keyC'])的调用应返回:

{
    "keyA": 1
}

我想用一行字来理解一本整洁的字典,但我有麻烦了。我的尝试是:

def without_keys(d, keys):
    return {k: d[f] if k not in keys for f in d}

这是无效语法。我该怎么做?


Tags: 函数in列表return字典mydef副本
3条回答

在你的字典理解中,你应该在字典上迭代(不是k,也不确定那是什么)。示例-

return {k:v for k,v in d.items() if k not in keys}

这应该对你有用。

def without_keys(d, keys):
    return {k: v for k, v in d.items() if k not in keys}

你很接近,请尝试下面的片段:

>>> my_dict = {
...     "keyA": 1,
...     "keyB": 2,
...     "keyC": 3
... }
>>> invalid = {"keyA", "keyB"}
>>> def without_keys(d, keys):
...     return {x: d[x] for x in d if x not in keys}
>>> without_keys(my_dict, invalid)
{'keyC': 3}

基本上,在上述情况下,if k not in keys将在听写理解结束时进行。

相关问题 更多 >