Python中使用字典将年度频次字符串转换为整数
用字典映射实现频率字符串到数值的转换
这完全是字典的拿手好戏,完美避开if分支的繁琐!直接通过键值对映射就能搞定,步骤超简单:
1. 定义映射字典
先把所有需要转换的频率字符串和对应数值一一对应存进字典里,覆盖你提到的所有情况:
frequency_map = { 'bi annual': 2, 'tri annual': 3, 'annual': 1 }
2. 直接通过字典取值赋值
拿到输入的Frq变量后,直接用字典的键来获取对应数值,赋值给frq:
# 示例输入 Frq = 'tri annual' # 取值赋值 frq = frequency_map[Frq] print(frq) # 输出:3
3. 处理未匹配的情况(可选)
如果担心输入的字符串不在字典里会抛出KeyError,可以用字典的get()方法,还能设置默认值:
# 当Frq不在字典中时,返回默认值1(或者你需要的其他值) frq = frequency_map.get(Frq, 1) # 或者返回None,后续可以自己处理异常情况 frq = frequency_map.get(Frq, None)
额外优化:大小写不敏感匹配
如果输入的字符串可能有大小写差异(比如Bi Annual或TRI ANNUAL),可以先把输入统一转为小写再匹配:
Frq = 'Bi Annual' frq = frequency_map.get(Frq.lower(), 1)
这样就完全满足你的需求啦,代码简洁还易维护,后续要加新的频率类型,直接往字典里加键值对就行~
内容的提问来源于stack exchange,提问作者dhinar1991




