繁体   English   中英

使用 lambda,过滤器根据列表键值从字典中提取值

[英]using lambda, filter for extracting values from a dictionary based on list key values

我有这个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

我假设你想要这样的东西:

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

无需使用 lambda,一个简单的列表理解在这里工作。

这只是向您展示如何使用lambdamapfilter 然而,在这种情况下,首选简单的list-comprehension

list(filter(None, map(lambda x:dictionary_pair.get(x, None) ,list_value)))
#[[1, 2]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM