【发布时间】:2014-10-22 17:14:50
【问题描述】:
示例:
d = {
"test": 1,
"sample": 2,
"example": 3,
"product": 4,
"software": 5,
"demo": 6,
}
filter_keys = ["test","sample","example","demo"]
我想创建一个新的 dict,它只包含第一个 dict 中其键出现在列表中的项目。换句话说,我想要:
d2 = {
"test": 1,
"sample": 2,
"example": 3,
"demo": 6,
}
我可以用循环来做到这一点:
d2 = {}
for k in d.keys():
if (k in filter_keys):
d2[k] = d[k]
但这似乎非常“非 Pythonic”。我还猜测,如果你有一个巨大的字典,比如 5,000 个左右的项目,与更直接的方式相比,不断向新字典添加新项目会很慢。
此外,您还希望能够处理错误。如果列表包含不是字典中的键的内容,则应将其忽略。或者它可能被添加到新的字典中,但值为 None。
有没有更好的方法来做到这一点?
【问题讨论】:
-
您已经问了很多问题,但没有接受这些问题的答案。你应该接受答案。
标签: python dictionary