根据范围获取子字典

Mat*_*tej 3 python dictionary

我有一个字典,其中坐标对作为键:即:

d = {(15,21): "value1", (7,45): "value2", (500,321): "value3",...}
Run Code Online (Sandbox Code Playgroud)

现在我需要返回键在一定范围内的元素的子字典:例如:(6:16,20:46)的范围应该返回以下字典: d = {(15,21): "Value1", (7,45): value2}如果该范围内没有其他元素.有没有预定义的字典功能呢?..你还有其他建议吗?

谢谢

dhe*_*aur 5

这是一种方法

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)
Run Code Online (Sandbox Code Playgroud)

Python 2.7增加了字典理解.最后一行变得更具可读性:

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