如何筛选dict以仅选择大于某个值的键?

2024-04-26 12:36:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典,结构如下:

{5:"djdj", 6:"8899", 7:"998kdj"}

密钥是int类型的,没有排序。

现在我要所有键为>;=6的元素。

有简单的方法吗?


Tags: 方法gt元素类型字典排序密钥结构
3条回答

也可以用filter来完成。

In [9]: data = {5:"djdj", 6:"8899", 7:"998kdj"}

In [10]: dict(filter(lambda x: x[0] > 5, data.items()))
Out[10]: {6: '8899', 7: '998kdj'}

“元素”是什么意思?

如果您想要键≥6的键值对的dict,Python 2.7+和3.x支持dict comprehensions

{ k: v for k, v in mydict.items() if k >= 6 }

您可以在Python的早期版本中获得此信息

dict( (k, v) for k, v in mydict.items() if k >= 6 )  # Python 2.4+
dict([(k, v) for k, v in mydict.items() if k >= 6])  # Python 2.0+

通过使用表达式生成器或列表理解。

如果你只想要一份钥匙清单

[ k for k in mydict.keys() if k >= 6 ]
filter( lambda k: k >= 6, mydict.keys() )

同样,如果您只想要一个值列表

[ v for k, v in mydict.items() if k >= 6 ]
[ mydict[k] for k in mydict.keys() if k >= 6 ]
map( mydict.get, filter( lambda k: k >= 6, mydict.keys() ) )

[v for k,v in mydict.items() if k >= 6]

相关问题 更多 >