我是Python的新手,正在尝试进行不区分大小写的匹配,如果可能的话,还要应用正则表达式,以便任何包含搜索词的句子都可以检索结果。
当前的“开关”:
def movement(i):
switcher = {
'Automatik': 6,
'Handaufzug': 12}
return switcher.get(i, "Invalid movement " + i)
watch['movement'] = movement(value)
在以下所有情况下,该方法均应返回6:
Python可以做到吗?
答案 0 :(得分:1)
与菠萝的略有不同:
def movement(my_string):
switcher={
'automatik' : 6,
'handaufzug' : 12
}
for k, v in switcher.items():
if k in my_string.lower():
return v
return None
for phrase in ['Automatik','automatik','Automatik Winding','Winding Automatik','negative automatico']:
print('in:{} \tout:{}'.format(phrase,movement(phrase)))
。
in:Automatik out:6
in:automatik out:6
in:Automatik Winding out:6
in:Winding Automatik out:6
in:negative automatico out:None
答案 1 :(得分:0)
假设我是一个字符串,您应该能够执行以下操作。虽然它不是最优雅或最强大的解决方案,但它应该可以完成工作。
def movement(i):
switcher={
'automatik' : 6,
'handaufzug' : 12
}
for word in my_string.split():
temp = switcher.get(word.lower(), None)
if temp is not None:
return temp
return None
watch['movement'] = movement(value)
希望这会有所帮助。