我正在编写一个 python 脚本,将完整的大写地址转换为首字母大写。我面临的问题是,当我申请 .title()
对于像 SOUTH 16TH STREET 这样的字符串,我得到 South 16Th Street。所需的转换将是 South 16th Street,其中序号的缩写为小写。
在 python 中实现此目的的简单方法是什么?我正在考虑使用某种正则表达式。
最佳答案
为了狭义地解决您提出的问题,我认为您可能会发现 string.capwords()
很有用。它将 split -> capitalize -> join 序列封装到一个命令中。
>>> address = "SOUTH 16TH STREET"
>>> capwords(address)
'South 16th Street'
有关 Python 3.4 中该命令的更多信息,请访问...
https://docs.python.org/3.4/library/string.html#string-functions
它也存在于早期版本的 Python 中。
但是,将您的问题扩展到一般性的格式设置,您可能会遇到这种简单方法的麻烦。可能需要更复杂的(例如基于正则表达式的)方法。使用我的语言环境中的示例:
>>> address = "Highway 99N" # Wanting'Highway 99N'
>>> capwords(address)
'Hwy 99n'
地址解析(和格式化)是一个棘手的问题,因为合法地址的变化量很大,而且人们的书写方式也不同(缩写等)。
pyparsing如果您不喜欢正则表达式方法,模块也可能是一种方法。
关于python - 如何将缩写序号的大小写更改为较低,同时将字符串的其余部分保持在标题大小写中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080260/