Python中为何空字符串''属于string.whitespace却不在其转换的列表中
问题解答
1. 为什么'' in string.whitespace判断结果为真?
这是Python对字符串in运算符的内置规则:空字符串''被定义为所有字符串的子串,该规则和string.whitespace本身的内容没有关系。你可以用任意字符串验证这个逻辑:
'' in '普通字符串'返回True'' in ''也返回True
2. 为什么空字符串不在list(string.whitespace)的返回结果中?
list()将字符串转为列表时,会把字符串拆分成长度为1的单个字符作为列表元素。而string.whitespace本身仅包含多个长度为1的空白字符(空格、制表符、换行符、回车符、换页符、垂直制表符),不存在长度为0的空字符串元素,因此转换后的列表里不会出现''。
你可以运行以下代码验证上述逻辑:
import string # 验证空字符串的in运算符规则 print('' in '测试字符串') # 输出 True # 查看string.whitespace的原始内容 print(repr(string.whitespace)) # 输出 ' \t\n\r\x0b\x0c' # 拆分后的列表内容 print(list(string.whitespace)) # 输出 [' ', '\t', '\n', '\r', '\x0b', '\x0c']
内容的提问来源于stack exchange,提问作者moj.kari
相关产品推荐
相关产品推荐

