Как перечислить ключ для определенных элементов словаря в Python - PullRequest
0 голосов
/ 06 июля 2018

У меня есть словарь соответствия:

k=[1,3,5,7,9]
matrix = { 1:[0,0], 2:[0,1], 3:[0,2], 4: [1,0], 5:[1,1], 6:[1,2], 7:[2,0], 8:[2,1], 9:[2,2]};
j=[matrix[i] for i in k]
print ("output=",j)

и вывод

output =[[0, 0], [0, 2], [1, 1], [2, 0], [2, 2]]

Мой вопрос заключается в том, как распечатать ключи определенных элементов в матрице словаря в порядке, как показано ниже:

key=[1,3,5,7,9]

Я надеюсь, что кто-то может мне помочь в этом вопросе. Спасибо.

1 Ответ

0 голосов
/ 06 июля 2018

Вы можете использовать понимание слова :

k=[1,3,5,7,9]
matrix = { 1:[0,0], 2:[0,1], 3:[0,2], 4: [1,0], 5:[1,1], 6:[1,2], 7:[2,0], 8:[2,1], 9:[2,2]};
print({i: v for i, v in matrix.items() if i in k})

Это выводит:

{1: [0, 0], 3: [0, 2], 5: [1, 1], 7: [2, 0], 9: [2, 2]}

Или, если вы хотите сохранить порядок до Python 3.6, вы можете использовать OrderedDict :

from collections import OrderedDict
print(OrderedDict(filter(lambda i: i[0] in k, matrix.items())))

Это выводит:

OrderedDict([(1, [0, 0]), (3, [0, 2]), (5, [1, 1]), (7, [2, 0]), (9, [2, 2])])
...