python 3.3 引入了string.casefold
方法,其效果和 string.lower
非常类似,都可以把字符串变成小写,那么它们之间有什么区别?什么时候该用string.casefold
而非string.lower
??
In [5]: name = 'Xu Zhoufeng'
In [6]: name.casefold()
Out[6]: 'xu zhoufeng'
In [7]: cname = 'Yu Dongfeng'
In [8]: cname.lower()
Out[8]: 'yu dongfeng'
對 Unicode 的時候用
casefold
casefold
lower()
只对 ASCII 也就是'A-Z'
有效,但是其它一些语言里面存在小写的情况就没办法了。文档里面举得例子是德语中'ß'
的小写是'ss'
(这个我也不懂):总结来说,汉语 & 英语环境下面,继续用
lower()
没问题;要处理其它语言且存在大小写情况的时候再用casefold()
lower()
只對 ASCII 也就是'A-Z'
有效,但是其它一些語言裡面存在小寫的情況就沒辦法了。文件裡面舉得例子是德文'ß'
的小寫是'ss'
(這篇我也不懂):🎜 rrreee 🎜總結來說,漢語 & 英語環境下面,繼續用lower()
沒問題;要處理其它語言且存在大小寫情況的時候再用casefold()
。 🎜 🎜https://docs.python.org/3/library/stdtypes.html#str.casefold🎜