Как сохранить порядок списков в новом словаре, если я хочу сравнить его со значением словаря и заменить его? - PullRequest
0 голосов
/ 07 октября 2019

Мне нужно сравнить список со словарными ключами и создать новый словарь, если они совпадают. Проблема в том, что я не знаю, как поддерживать порядок списков.

   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}

1 Ответ

1 голос
/ 07 октября 2019

Если вы используете версию Python более позднюю или равную 3,6 (словари гарантированно поддерживают порядок), вы должны перебирать список при создании словаря, а не оригинального слова, если вы хотите, чтобы ключи были в том же порядкекак в списке

Зацикливание на dict всегда будет производить ключи в том же порядке, что и исходный dict

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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...