python3.x - python 的 string.casefold 和 string.lower 方法区别?
伊谢尔伦
伊谢尔伦 2017-04-17 17:21:54
0
1
954

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'
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(1)
PHPzhong

對 Unicode 的時候用 casefoldcasefold

Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string. For example, the German lowercase letter 'ß' is equivalent to "ss". Since it is already lowercase, lower() would do nothing to 'ß'; casefold() converts it to "ss".

lower() 只对 ASCII 也就是 'A-Z'有效,但是其它一些语言里面存在小写的情况就没办法了。文档里面举得例子是德语中'ß'的小写是'ss'(这个我也不懂):

s = 'ß'
s.lower() #  'ß'
s.casefold() # 'ss'

总结来说,汉语 & 英语环境下面,继续用 lower()没问题;要处理其它语言且存在大小写情况的时候再用casefold()

Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string. For example, the German lowercases lermanx' is equivs is. ) would do nothing to 'ß'; casefold() converts it to "ss".

lower() 只對 ASCII 也就是 'A-Z'有效,但是其它一些語言裡面存在小寫的情況就沒辦法了。文件裡面舉得例子是德文'ß'的小寫是'ss'(這篇我也不懂):🎜 rrreee 🎜總結來說,漢語 & 英語環境下面,繼續用 lower()沒問題;要處理其它語言且存在大小寫情況的時候再用casefold()。 🎜 🎜https://docs.python.org/3/library/stdtypes.html#str.casefold🎜
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板