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

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

유니코드의 경우 casefold

사용

대소문자 구분은 소문자와 유사하지만 문자열에서 모든 대소문자 구분을 제거하기 때문에 더 공격적입니다. 예를 들어 독일어 소문자 'ß'는 이미 소문자이기 때문에 lower()는 'ß'에 대해 아무 작업도 수행하지 않으며, casefold()는 이를 "ss"로 변환합니다.

lower()은 ASCII, 즉 'A-Z'에만 유효하지만, 다른 언어에 소문자가 있으면 아무것도 할 수 없습니다. 문서에 제시된 예는 독일어로 'ß'의 소문자는 'ss'입니다(저도 이 내용을 이해하지 못합니다):

으아악

요약하자면 중국어, 영어 환경에서는 lower()을 계속 사용해도 문제가 없고, 다른 언어와 대문자를 처리해야 할 때는 casefold()을 사용하면 됩니다.

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿