python-3.x - 如何比较python中的复杂字符串?
问题描述
我抓取了一个有土耳其月份的网站,并编写了将其转换为公历月份的代码;但它不起作用。如何比较这样的复杂字符串?
if month=="Kasım":
#tested
#return "November"
return 11
if month=="Aralık":
#tested
return 12
#return "December"
if month=="Ekim":
return 10
#return "October"
if month=="Eylül":
return 9
#return "September"
if month=="Ağustos":
return 8
#return "August"
if month=="Temmuz":
return 7
#return "July"
if month=="haziran":
return 6
#return "June"
if month=="mayıs":
return 5
#return "May"
if month=="nisan":
return 4
#return "April"
if month=="mart":
return 3
#return "March"
if month=="şubat":
return 2
#return "February"
if month=="Ocak":
return 1
#return "January"
我从抓取的站点复制了字符串,但我的转换器总是返回if
函数中第一个的结果;例如:它总是返回 11。还有其他方法可以比较它们吗?
解决方案
如果您将其设为字典,则可以直接访问它。
turkish_months = {
"Kasım": 11, # "November"
"Aralık": 12, # "December"
"Ekim": 10, # "October"
"Eylül": 9, # "September"
"Ağustos": 8, # August"
"Temmuz": 7, # "July"
"haziran": 6, # "June"
"mayıs": 5, # "May"
"nisan": 4, # "April"
"mart": 3, # "March"
"şubat": 2, # "February"
"Ocak": 1 # "January"
}
然后访问它:
current_month = "Ekim"
turkish_months[current_month]
如果您的代码始终返回 11:我怀疑问题不在于您的转换,而在于您尝试转换的数据。您很可能一次又一次地尝试转换相同的数据,但认为它不一样。在尝试转换之前尝试打印进入转换器的数据,以确保它正常工作,然后删除打印件。
推荐阅读
- python - 在 Jupyter Notebook 中执行 Windows PowerShell 命令
- java - 静态兼实例变量
- c++ - boost函数的奇怪行为
- javascript - 根据页面(单元格)中的位置执行 JavaScript 函数?
- ssl - 使用现有证书在 SOLR 上启用 SSL
- wix - Wix Bootstrapper 检查 Net 4.5.2 然后下载它也检查 Windows 版本
- xml - 杰克逊 XML 冲突
- asp.net - vb.net Sys.WebForms.PageRequestManagerServerErrorException 错误
- c# - 将大型矢量图像转换为二进制矩阵的快速方法
- c - 在 C 中使用动态分配结构 (Realloc) 进行内存分配