используя лямбда, фильтр для извлечения значений из словаря на основе значений ключей списка - PullRequest
0 голосов
/ 08 мая 2020

У меня есть dictionary_pair и list_value. Я хочу иметь возможность использовать lambda, фильтр, чтобы получить список как [1,2]. Я пробовал приведенный ниже код, но получил список как ['ab'].

dictionary_pair = {'ab': [1, 2], 'cd': [3, 1]}

list_value = ['ab', 'yz']

try:  
    result = list(filter(lambda x: dictionary_pair[x], list_value))
except KeyError:  
    pass

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Это просто, чтобы показать вам, как использовать lambda, map, filter. Однако в этом случае предпочтительнее простой list-comprehension

list(filter(None, map(lambda x:dictionary_pair.get(x, None) ,list_value)))
#[[1, 2]]
1 голос
/ 08 мая 2020

Я предполагаю, что вам нужно что-то вроде этого:

result = [v for k, v in dictionary_pair.items() if k in list_value]

Не нужно использовать лямбда, здесь работает простое понимание списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...