You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python移除列表元素下划线时遇TypeError报错求助

解决列表元素去下划线时的TypeError问题

你的问题出在列表里混了字符串和整数类型——re.sub只能处理字符串或字节对象,当遍历到整数2时,自然会抛出TypeError: expected string or bytes-like object。

给你两种可行的解决办法:

方法一:类型判断+正则替换

先判断元素是否为字符串,是就用正则去掉下划线,不是就直接保留原元素:

import re
my_list = ['aaa', 'bb_bb', 'cc', 2]
my_list = [re.sub('_', '', item) if isinstance(item, str) else item for item in my_list]

这里把循环变量换成item比用_可读性更好,避免和正则方法里的参数混淆。

方法二:类型判断+字符串replace(更高效)

因为只是替换单个下划线,用字符串自带的replace方法比正则更轻量,性能更好:

my_list = ['aaa', 'bb_bb', 'cc', 2]
my_list = [item.replace('_', '') if isinstance(item, str) else item for item in my_list]

执行后两种方法都能得到你想要的结果:['aaa', 'bbbb', 'cc', 2]

内容的提问来源于stack exchange,提问作者Hiwot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:36:35