python - 根据范围获取子词典

标签 python dictionary

我有一个字典,它以坐标对作为键:即:

d = {(15,21): "value1", (7,45): "value2", (500,321): "value3",...}

现在我需要返回键在一定范围内的元素的子字典: 例如:范围 (6:16, 20:46) 应返回以下字典: d = {(15,21): "Value1", (7,45): value2} 如果该范围内没有其他元素。 是否有任何预定义的字典功能可以做到这一点? ..或者您还有其他建议吗?

谢谢

最佳答案

这里有一个方法可以做到这一点

d = {(15,21): "value1", (7,45): "value2", (500,321): "value3"}
x1, x2, y1, y2 = 6, 16, 20, 46 
dict((k,v) for k, v in d.iteritems() if x1<k[0]<x2 and y1<k[1]<y2)

Python 2.7 添加了字典解析。最后一行变得更具可读性:

{k: v for k, v in d.iteritems() if x1<k[0]<x2 and y1<k[1]<y2}

关于python - 根据范围获取子词典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698620/

相关文章:

python - 使用 iloc 从数据框中切片多个列范围

python - 如何提高 Python3 的代码覆盖率

python - 无法使用 pd.read_csv 命令将 csv 文件导入 python

python - 在 App Engine (BlobInfo) 上发送带有附件的电子邮件

python - 如何使用字符串索引字符串值将 pandas DataFrame 转换为 dict?

python - 用同一个键合并两个字典

python - 如何在Python中将字典的值设置为类方法?

swift - 无法从 NSUserDefaults 获取字典作为保存格式

python - 当你在 python 中设置字典时会发生什么?

c++ - 将自定义类型作为 map 的可能键的可能方法有哪些