Вы можете использовать понимание слова :
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])])