使用值列表从现有字典创建新字典



我有一个值列表,并希望使用与列表中值对应的键/值对从现有字典创建一个新字典。我找不到涵盖这个问题的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 comprehensionfilter

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}

相关内容

  • 没有找到相关文章

最新更新