模式匹配使用python
问题描述:
在下面的代码如何在字典中的“答案”和“nonanswer”后的图案匹配模式匹配使用python
opt_dict=(
{'answer1':1,
'answer14':1,
'answer13':12,
'answer11':6,
'answer5':5,
'nonanswer12':1,
'nonanswer11':1,
'nonanswer4':1,
'nonanswer5':1,})
而且
if opt_dict:
for ii in opt_dict:
logging.debug(ii)
logging.debug(opt_dict[ii])
if ii in "nonanswer":
logging.debug(opt_dict[ii])
elif ii in "answer":
logging.debug("answer founddddddddddddddddddddddddddddddd")
logging.debug(opt_dict[ii])
else:
logging.debug("empty dict")
答
我并没有把所有的日志记录,但这应该工作:
if opt_dict:
for key, value in opt_dict.items():
if "nonanswer" in key:
print "nonanswer", value
elif "answer" in key:
print "answer", value
else:
raise Exception("invalid key")
else:
print "empty dict"
答
我很确定你有你的in
测试逆转。数据的格式为answer1
,它永远不会在文字answer
中。改为尝试"answer" in ii
。
更具体地讲,你可以(在这个例子至少)使用startswith
方法,因为所有的数据实际上answer
或nonanswer
开始,你可能不想匹配形式34argleanswer
的东西。
我很抱歉地说我不太清楚你在问什么。请你能详细说明你的问题吗?你知道字典是无序的,对吗?提出问题的一般方法是显示你的输入是什么,你想要什么输出以及你为了达到这个目的而尝试的东西。 – MattH 2010-08-04 13:47:16