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

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 には casefold

を使用します

大文字小文字の区別は小文字化に似ていますが、文字列内のすべての大文字と小文字の区別を削除することを目的としているため、より積極的です。たとえば、ドイツ語の小文字「ß」はすでに小文字であるため、「ss」と同等です。 lower() は 'ß' に対して何も行いません。casefold() はそれを "ss" に変換します。

lower() は ASCII、つまり 'A-Z' に対してのみ有効ですが、他の言語で小文字が含まれる場合はどうすることもできません。ドキュメントに示されている例では、ドイツ語の 'ß' の小文字は 'ss' です (これも理解できません):

リーリー

要約すると、中国語と英語の環境では、引き続き lower() を使用しても問題ありません。他の言語や大文字を扱う必要がある場合は、casefold() を使用してください。

https://docs.python.org/3/library/stdtypes.html#str.casefold

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート