我有一个具有以下结构的字典:键是源和目标之间的链接,值是对象连线的实例。
wire_dict = { source1_destination1_1 : object,
source1_destination1_2 : object
source2_destination1_3 : object
source2_destination1_4 : object
source2_destination2_1 : object
source2_destination2_2 : object }
假设我只有一个目标值,并且我想用它找到具有 destination1_1
的键,或许可以使用正则表达式。如您所见,相同的源可以有多个目的地,但不同的源不能有相同的目的地。所以我想找到以目的地结尾的键。
由于 wire_dict 可能包含大量键值条目,请告诉我这种方法如何影响应用程序的性能。也许我应该只为源和目标之间的关系创建另一个字典?
更新:我用元组作为键更改字典:
wire_dict = { ('source1','destination1_1') : object1,
('source1','destination1_2') : object2
('source2','destination1_3') : object3
('source2','destination1_4') : object4
('source2','destination2_1') : object5
('source2','destination2_2') : object6 }
应用程序的逻辑是一样的。一个目的地不能有多个来源。因此,提供目的地时,只能是巧合。
最佳答案
通过 dict 键进行字符串搜索对于标准 python 词典来说将是线性时间。但它可以通过 dict.keys()
和 re
模块来完成,正如 @avim 所帮助的那样。
对于第二个问题,用元组作为键而不是字符串键怎么样:
{(begin, end): connection_object}
它根本不会加速(搜索可能保持线性)但它可以在您想要表达的逻辑背后启用更好的代码。
关于python - 使用...正则表达式在字典中查找键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29207245/