我有一本字典d = {'key1' : 1, 'key2' : 2, 'key3' : 3}
和列表lst = ['key1','key2']
如何过滤字典以仅在列表中包含键,以便获得d = {'key1' : 1, 'key2' : 2}
?
答案 0 :(得分:3)
简单地:
d2 = {k:d[k] for k in lst}
但是所有键都必须存在于源目录中。如果没有:
d2 = {k:d[k] for k in lst if k in d}
答案 1 :(得分:2)
target_set = set(lst)
d2 = {k:v for k,v in d.items() if k in target_set}
d2
Out[23]: {'key1': 1, 'key2': 2}
答案 2 :(得分:2)
MrSoLoDoLo
尝试一下
data = [d[k] for k in list]
如果要从结果中重建字典,则还可以在元组列表中捕获键并将其转换为字典,例如
data = dict ([(k, d[k]) for k in list])
答案 3 :(得分:1)
dict(filter(lambda x: x[0] in lst, d.items()))