我有一个值列表,并希望使用与列表中值对应的键/值对从现有字典创建一个新字典。我找不到涵盖这个问题的Stackoverflow答案。
example_list = [1, 2, 3, 4, 5]
original_dict = {"a": 1, "b": 2, "c": 9, "d": 2, "e": 6, "f": 1}
desired_dict = {"a": 1, "b": 2, "d": 2, "f": 1}
请注意,在original_dict
中有一些值被分配给多个键(如示例所示)。
如有任何帮助,不胜感激。
感谢您可以使用dict comprehension
或filter
。
example_list = [1, 2, 3, 4, 5]
original_dict = {"a": 1, "b": 2, "c": 9, "d": 2, "e": 6, "f": 1}
desired_dict = {key: value for key, value in original_dict.items() if value in example_list}
# Option_2
desired_dict = dict(filter(lambda x: x[1] in example_list, original_dict.items()))
# -------------------------------^^^ x[0] is key, x[1] is value of 'dict'
print(desired_dict)
输出:
{'a': 1, 'b': 2, 'd': 2, 'f': 1}
您可以将original_dict.items()
传递给filter
,然后将filter
的结果重新转换为dict
。
el = [1, 2, 3, 4, 5]
od = {"a": 1, "b": 2, "c": 9, "d": 2, "e": 6, "f": 1}
# `i` will be (key,value)
dd = dict(filter(lambda i: i[1] in el, od.items()))
print(dd) #{"a": 1, "b": 2, "d": 2, "f": 1}