关键字dict正则表达式的Python dict

时间:2015-04-30 15:21:11

标签: python regex python-2.7 dictionary

我还在使用Python中的字典。是否可以通过使用正则表达式或启动函数来引用词典中的键?

我有以下格式的dicts字典,我正在尝试对' AreaOfInterest1' AreaOfInterest2' AreaOfInterest3'' AreaOfInterest3'进行一般搜索。我把它作为通用,然后引用相关的列表值[0]来执行操作。

我对dicts的看法看起来像......

FeatureDict = {
    "MATCHcode96":{
    'ID':'MATCHcode96',
    'AreaOfInterest1':['String 1','%',0],
    'AreaOfInterest2':['String 2','Avg',[]],
    'AreaOfInterest3':['String 3','Avg',[]],
    },
    "MATCHcode9F":{
    'ID':'MATCHcode9F',
    'AreaOfInterest1':['String 1','%',0],
    'AreaOfInterest2':['String 2','Avg',[]],
    },
}

我正在寻找的功能是使用startswith(如下所示)或以其他方式尝试正则表达式。

for dict in FeatureDict:
    if FeatureDict[dict]['ID'] in mypkt.Text:               
        if FeatureDict[dict][startswith.('AreaOfInterest')][0] in mypkt.Text:
            print 'found'   

感谢。

2 个答案:

答案 0 :(得分:1)

不,var stringa = "14:30 - 19:30"; var res = str.split("-"); 不支持基于密钥功能或密钥部分匹配的查找。 dict确实支持迭代,因此您可以以O(n)的成本进行自己的查找。 (dict查找通常是O(1))。

dict

答案 1 :(得分:1)

保持循环:

ids = ['MATCHcode9F']
area_ids = ['String 1']
for key in data:
    if data[key]['ID'] in ids:
        for inner_key in data[key]:
            if inner_key.startswith('AreaOfInterest') and data[key][inner_key][0] in area_ids:
                print('found')

所以你的代码看起来像

for key in FeatureDict:
    if FeatureDict[key]['ID'] in mypkt.Text:
        for inner_key in FeatureDict[key]:
            if inner_key.startswith('AreaOfInterest') and FeatureDict[key][inner_key][0] in mypkt.Text:
                print 'found'