如何在Python中从一个字典复制一个键值对到另一个字典

4
假设我有一个字典:
mydict = {"color":"green",
          "type":"veg",
          "fruit":"apple",
          "level": 5
          }
new_dict = {}

我想将键"color"和"fruit"及其对应的值添加到new_dict中。怎样做最简单?谢谢。


1
这个回答解决了你的问题吗?将一个字典中的键/值复制到另一个字典中 - jimh
5个回答

4
你可以尝试这样做:
new_dict = {x:mydict[x] for x in mydict if x in ('color','fruit')}

2

最简单的方法是这样的:

new_dict["color"] = mydict["color"]

然而,如果您有一个更大的项目列表需要传递给新字典,您可以使用以下方法:

items = ["color", "fruit"]
for item in items:
    new_dict[item] = mydict[item]

0

你可以保留一个要添加的键集合,然后使用字典推导式过滤掉不需要的键:

>>> keys = {"color", "fruit"}
>>> new_dict = {k: v for k, v in mydict.items() if k in keys}
>>> new_dict
{'color': 'green', 'fruit': 'apple'}

如果你只涉及到两个键,那么or也是另一个选项:

>>> new_dict = {k: v for k, v in mydict.items() if k == "color" or k == "fruit"}
>>> new_dict
{'color': 'green', 'fruit': 'apple'}

使用集合的好处在于,如果您有许多键需要过滤,则使用or可能会变得混乱。此外,字典键是唯一的,因此使用集合是有意义的。


0
以下代码可以适用于你的示例。
mydict = {
    "color":"green",
    "type":"veg",
    "fruit":"apple",
    "level": 5
}
new_dict = {
    "color": mydict["color"],
    "fruit": mydict["fruit"]
}

如果您需要更一般性的内容:
def copy_dict(original, keys=None):
    keys = keys or {key for key in original}
    return {
        key: value for key, value in original if key in keys
    }

mydict = {
    "color":"green",
    "type":"veg",
    "fruit":"apple",
    "level": 5
}
new_dict = copy_dict(mydict, {'color', 'fruit'})

0

另一种方式:

expected_keys=('color', 'fruit')
for k in expected_keys:
     new_dict[k]=mydict[k]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接