如何从Python列表中移除指定字符?解决strip方法报错问题
解决Python列表中移除指定子串的问题
错误原因分析
你遇到的AttributeError是因为**strip()是字符串专属方法**,不能直接调用在列表对象上。而且就算你把代码改成i.strip("_out")也没用——strip()只会移除字符串首尾的指定字符,根本处理不了中间的_out子串。
正确解法
要替换掉每个字符串里的_out,应该用字符串的replace()方法,搭配列表推导式可以快速实现需求:
lst1 = ['ZINC1_out.pdbqt', 'ZINC2_out.pdbqt', 'ZINC3_out.pdbqt'] # 遍历每个元素并替换掉_out lst1 = [s.replace('_out', '') for s in lst1] print(lst1)
执行后输出:
['ZINC1.pdbqt', 'ZINC2.pdbqt', 'ZINC3.pdbqt']
备选循环写法
如果你习惯用普通循环,也可以创建新列表来存储处理后的结果:
lst1 = ['ZINC1_out.pdbqt', 'ZINC2_out.pdbqt', 'ZINC3_out.pdbqt'] new_list = [] for item in lst1: # 替换每个字符串中的_out为空 new_item = item.replace('_out', '') new_list.append(new_item) # 更新原列表指向处理后的新列表 lst1 = new_list
内容的提问来源于stack exchange,提问作者Pythonstudent
相关产品推荐
相关产品推荐

