2014-02-27 58 views
0

我有一个字符串,我想通过关键字来拆呢“相较于”,并返回一个字典两个部分通过关键字分割字符串,返回字典

这两部分返回字典以“诊断”和“比较”作为关键。如果没有“当与”存在于句子中,“比较”的值指定为“NO比较来”

例如

如果字符串是“这是当相比,这是”

输出应为:

诊断:这是

比较(前 “相比于” 的部分):这是(部分下面的“相较于”)

如果字符串是“有什么好一个”

输出应该是:

诊断:有什么好一个

比较:没有做比较

我写了下面的代码,但它不起作用

recomp = re.compile("When compared with") 

def identifyComparison(report,recomp): 
dict1={} 
match = recomp.search(report) 

for match in recomp.finditer(report): 
    dict1['diagnostic']= report[0:recomp] 
    dict1['comparison']= report[recomp:] 
    return dict1 
else: 
    dict1['diagnostic']= report[0:recomp] 
    dict1['comparison']= 'no comparison made' 
    return dict1 

预先感谢任何帮助

+0

你有一个答案,是否能解决您的需求,接受它。否则评论它的作用,以及你需要什么?顺便说一句,它确实看起来像你在这里所需要的。 :)干杯! – Guy

回答

0
>>> my_string= raw_input("Enter a string: ") 
Enter a string: this is when compared to which is 
>>> result={} 
>>> result_list = my_string.split("when compared to") 
>>> if(len(result_list)==2): 
...  result['dignostic']=result_list[0] 
...  result['comparison']=result_list[1] 
... 
... else: 
...  result['dignostic']=result_list[0] 
...  result['comparison']='no comparison made' 

>>> result 
{'dignostic': 'this is ', 'comparison': ' which is'} 
+0

谢谢!我知道了! – neymar

2
data, keys = "this is When compared to which is", ["diagnostic", "comparison"] 
print dict(zip(keys, data.split("When compared to") + ['no comparison made'])) 
# {'comparison': ' which is', 'diagnostic': 'this is '} 
+0

@ John1024谢谢:)我更新了答案:) – thefourtheye