python 利用字典,根据要求的key值条件匹配对应value

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 利用字典,根据要求的key值条件匹配对应value相关的知识,希望对你有一定的参考价值。

图一为构建的字典,如何根据图二的key,在图一的字典中找到匹配的value,得到图三

是要操作数据库还是excel。

单纯字典操作,字典名[键名] 就可以取值

参考技术A 利害,我想学

Python3:有条件地从具有理解的字典中提取键

【中文标题】Python3:有条件地从具有理解的字典中提取键【英文标题】:Python3: Conditional extraction of keys from a dictionary with comprehension 【发布时间】:2013-07-09 03:00:55 【问题描述】:

我需要提取值通过特定条件的字典的那些键。 基本上,我想这样做,只是以更短、更 Python 的方式:

keys=[]
for key in dict:
    if dict[key]==True:
        keys.append(key)

这是我最初的想法,但它引发了 ValueError:

[key for (key,val) in map if val==True]

我暂时想到了这个,但我不禁觉得它不是很好:

[key for key in map.keys() if map[key]==True]

有没有更简单的方法呢?也许我明显错过了一些明显的东西?

谢谢!

【问题讨论】:

【参考方案1】:

遍历映射只会产生键。请改用map.items()

【讨论】:

问题标记为(在标题中)Python 3,因此dict.iteritems() 不存在。【参考方案2】:

使用dict.items()

[key for key, val in dct.items() if val]

如果您只想获取具有 True 值的键,而不是任何真值,则可以使用相等检查:

[key for key, val in dct.items() if val==True]

PEP8 中指出,不应使用 == 比较布尔值 - 所以除非绝对需要,否则不要使用它。

另外,请不要将变量命名为 dictmap(即使仅用于演示目的),因为它们会影响 bulitins。

【讨论】:

【参考方案3】:

这是一种获取具有比推导更短和更清晰的真值的键的方法(虽然不是推导不好):

>>> dct = 0:False, 1:True, 2:False, 3:True
>>> list(filter(dct.get, dct))
[1, 3]
>>>

【讨论】:

你不需要dct.keys() - 遍历字典已经产生了键。使用dct

以上是关于python 利用字典,根据要求的key值条件匹配对应value的主要内容,如果未能解决你的问题,请参考以下文章

python 根据字典的键值进行排序

python字典如何根据key比较value?

Python 如果两个字典key值相同,如何提取对应values组成新的字典

c++中怎样读取python字典,获得字典中的key值(一个key中有多个值)和value值?

Python字典如何根据值返回键

Python字典如何根据值返回键