【发布时间】:2018-08-02 21:17:13
【问题描述】:
我在 Python 中有一个小问题。我有一个二维字典。现在让我们称它为 dict[x,y]。 x 和 y 是整数。我尝试只选择在 4 点之间匹配的键对值。函数应该是这样的:
def search(topleft_x, topleft_y, bottomright_x, bottomright_y):
For example: search(20, 40, 200000000, 300000000)
Now are Dictionary-items should be returned that match to:
20 < x < 20000000000
AND 40 < y < 30000000000
这个巨大矩阵中的大多数键对值都没有设置(见图 - 这就是我不能迭代的原因)。
这个函数应该返回一个简短的字典。在图片中显示的示例中,它将是一个带有 3 个绿色圆圈值的新字典。有没有简单的解决方案来实现这一点? 我最近使用了 2-for-loops。在本例中,它们看起来像这样:
def search():
for x in range(20, 2000000000):
for y in range(40, 3000000000):
try:
#Do something
except:
#Well item just doesnt exist
当然,这是非常低效的。所以我的问题是:如何在 Python 中提升这个简单的东西?在 C# 中,我使用 Linq 来处理这样的事情......在 python 中使用什么?
感谢您的帮助!
【问题讨论】:
-
请问你能举一个字典的例子吗?我不明白为什么你需要用
for x in range(20, 2000000000):尝试每个值 -
@roganjosh 感谢您的回答。因为如果我做这么多循环,程序太慢了!在二维字典中,这就像 6e+19 循环 ^^
-
我刚刚看到您的完整回复。这和我问的一点关系都没有。我很清楚这个问题,我要求你提供一个示例输入。了解如何创建Minimal, Complete and Verifiable example
标签: python python-2.7 dictionary key