我还在使用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'
感谢。
答案 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'