首页 > 解决方案 > 如果我想将它与字典值进行比较并替换它,如何维护新字典中的列表顺序?

问题描述

我需要将列表与字典键进行比较,如果它们匹配则制作一个新字典。问题是我不知道如何维护列表顺序。

   list = [cat, dog, horse, kitten]
   dict = {dog: 1, cat: 5}
   filter_dict = {}
   for key, value in dict.items():
            if key in list:
                filter_dict[key] = value
    print(filter_dict)

我需要的:

filter_dict= {cat: 5, dog: 1}

我得到什么:

filter_dict = {dog: 1, cat: 5}

标签: pythonlistdictionary

解决方案


假设您使用的是晚于或等于 3.6 的 Python 版本(保证字典保持顺序),如果您希望键的顺序与列表

循环遍历字典将始终以与原始字典相同的顺序生成键

for item in your_list:
    if item in your_dict:
        filter_dict[item] = your_dict[item]

这可以通过理解来实现

filter_dict = {key: your_dict[key] for key in your_list if key in your_dict}

推荐阅读