【发布时间】:2015-05-26 06:22:37
【问题描述】:
我有一个具有以下结构的字典:键是源和目标之间的链接,值是对象连线的实例。
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 }
应用程序的逻辑是相同的。一个目的地不能有多个来源。因此,提供目的地时,只能找到巧合。
【问题讨论】:
-
您的数据组织不能有效地支持此操作...您应该真正遵循 progo 的建议并使用对而不是字符串。此外,如果您跟踪哪些来源与目的地相关联,您就可以在不扫描所有条目的情况下获得所需的结果。
-
@Bakuriu 我编辑了帖子。请参阅上面的更新。
标签: python regex python-2.7 dictionary