Python中replace函数未按预期工作,字符串转列表仍有空字符串问题
问题分析与解决
你的代码问题出在遍历每个字符时,遇到空格字符会用replace(" ", "")把它转为空字符串,但依然会将这个空字符串添加到列表中,所以最终结果里会出现''。
解决方法
方法一:过滤空格字符
直接在循环中判断字符不是空格时才添加到列表:
def str2list(argstr): retlist = [] for c in argstr: if c != ' ': retlist.append(c) return retlist print(str2list('abc efg')) # 输出: ['a', 'b', 'c', 'e', 'f', 'g']
方法二:先移除所有空格再转列表
更简洁的写法是先把整个字符串的空格全部移除,再直接转为列表:
def str2list(argstr): return list(argstr.replace(" ", "")) print(str2list('abc efg')) # 输出: ['a', 'b', 'c', 'e', 'f', 'g']
这两种方法都能得到你想要的期望输出。
内容的提问来源于stack exchange,提问作者Sskatx
相关产品推荐
相关产品推荐

