python 3 : Conditional extraction of keys from a dictionary with comprehension

标签 python dictionary python-3.x dictionary-comprehension

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

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]

有没有更简单的方法?也许我明显遗漏了一些明显的东西?

谢谢!

最佳答案

这是一种获取具有真实值的键的方法,它比理解更短更清晰(虽然不是说理解很糟糕):

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

关于 python 3 : Conditional extraction of keys from a dictionary with comprehension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583225/

相关文章:

python - 无法在 Windows 上使用 pip 安装 'pyreadline'

python - 为什么我收到 AttributeError : 'module' object has no attribute 'set_trace'

Python:创建一个字典,其中的键有多个值

python-3.x - Pandas 的迭代速度非常慢

python - 磁盘空间 - Python 字典与列表

python - 如果所有元素都符合不使用 "if all"的要求

python - 关于 Python 中的 os.fork() 函数

javascript - 铯 JS : center map in 2d scene mode

python - 从字典中提取结果

python - 如何使用 python 获取 FTP 的当前工作目录