Вам не нужно перебирать каждую клавишу во втором цикле for
. С Python вы можете просто использовать понимание списка:
L = [1, 2, 3, 4]
d = {2: 'a', 4: 'b'}
res = [d[i] for i in L if i in d] # ['a', 'b']
Альтернативное функциональное решение возможно, если вы знаете, что значения вашего словаря не являются ложными (например, не 0
, None
). filter
- это ленивый итератор, поэтому вам придется исчерпать через list
на следующем шаге:
res = filter(None, map(d.get, L))
print(list(res)) # ['a', 'b']