Python中如何处理replace传None报错及split后列表空字符串问题
问题原因
原字符串中的a被替换为空后,原来a前后的空格会变成连续的两个空格,你指定用单个空格作为分隔符执行split(' ')时,连续空格的中间位置就会被拆分出空字符串元素。
另外replace方法的第二个参数要求必须是字符串类型,用来替换匹配到的内容,你传入None不符合参数类型要求,自然会触发类型错误,这个调整方向不可行。
解决方法
方法1:使用split默认参数(最简便)
split方法不传任何参数时,默认会按任意空白字符(空格、制表符、换行符等)拆分,同时自动忽略首尾空白和连续空白,不会生成空字符串元素,完全匹配你的需求。
修改后代码:
var = "this is a string" var = var.replace('a', '') var = var.split() print(var) # 输出结果:['this', 'is', 'string']
方法2:拆分后过滤空元素
如果你有特殊需求必须指定按单个空格拆分,可以在拆分后用列表推导式过滤掉空元素:
var = "this is a string" var = var.replace('a', '') var = var.split(' ') var = [i for i in var if i] print(var) # 输出结果:['this', 'is', 'string']
内容的提问来源于stack exchange,提问作者user16459815
相关产品推荐
相关产品推荐

