Python中strip与split默认空白符定义及源码查询
Python中strip与split默认空白符相关问题
1. 默认whitespace的定义来源
Python里strip、split等函数默认使用的空白符是标准ASCII空白字符集,包含:空格、制表符、回车、换行、换页符、垂直制表符。
这个定义的底层逻辑依托于str.isspace()方法的判定规则,相关实现可查看CPython源码的字符串处理模块,比如Objects/stringlib/ctype.h或strobject.c文件。
2. 省略参数时二者是否使用相同空白符?
是,二者使用完全相同的ASCII空白符集合。
- 当
strip()不传入chars参数或设为None时,会移除字符串首尾所有符合str.isspace()判定的空白字符; - 当
split()不传入sep参数或设为None时,会以任意连续的ASCII空白字符作为分隔符分割字符串,官方文档明确说明其覆盖的空白符为:「ASCII空白字符(空格、制表符、回车、换行、换页符、垂直制表符)」(原文:ASCII whitespace characters (space, tab, return, newline, formfeed, vertical tab))。
对应源码参考:
- strip逻辑:CPython的
Objects/stringlib/trim.h中stringlib_strip函数 - split逻辑:CPython的
Objects/stringlib/split.h中stringlib_split函数
内容的提问来源于stack exchange,提问作者wolfrevo
相关产品推荐
相关产品推荐

