Python编写函数去掉字符串中的空格_自定义函数去除字符串空格
发布时间 - 2026-01-08 00:00:00 点击率:次replace()最快删ASCII空格但不处理制表符、换行符及全角空格;re.sub()可统一清除所有Unicode空白包括全角空格;translate()速度最快但需预定义字符集;split()+join()会丢失原始分隔结构且性能差。
用 replace() 最快去掉所有空格,但要注意它不处理制表符和换行符
如果只是想把普通空格(ASCII 32)全删掉,replace() 是最直接的选择,性能也最好。它不会动其他空白字符,比如 \t、\n、\r,这点要心里有数。
-
"hello world".replace(" ", "")→"helloworld" - 对中文或带全角空格的字符串无效:
"你好 世界".replace(" ", "")保留全角空格(U+3000) - 多次调用
replace()不推荐,比如.replace(" ", "").replace("\t", ""),可读性差且效率低
用 re.sub() 精确控制“哪些空白要删”,适合复杂清洗场景
当你要统一清除所有 Unicode 空白字符(包括空格、制表、换行、全角空格、不间断空格等),正则更可靠。关键是别写错模式 —— \s 匹配所有空白,但默认不包含全角空格;要覆盖更广,得显式列出或用 [\s\u3000]。
import re
def remove_all_whitespace(s):
return re.sub(r'[\s\u3000]+', '', s) # \s + 中文全角空格
-
re.sub(r'\s+', '', s)能删\t\n\r\f\v,但对(U+3000)无效 - 加
re.UNICODE标志在 Python 3 中通常不需要,因为默认已启用 - 如果字符串很长且调用频繁,预编译正则能省点开销:
RE_WHITESPACE = re.compile(r'[\s\u3000]+')
用 str.translate() 去除固定字符集,速度最快但灵活性低
如果你明确只删空格、制表、换行这几种,且追求极致性能(比如处理 GB 级日志),translate() 比 replace() 和正则都快。但它不能写逻辑,只能靠查表映射。
WHITESPACE_TABLE = str.maketrans('', '', ' \t\n\r\f\v\u3000')
def remove_whitespace_fast(s):
return s.translate(WHITESPACE_TABLE)
-
maketrans()第三个参数是“要删除的字符”,传字符串即可 - 注意:Python 2 和 Python 3 的
maketrans()接口不同,上面写法仅适用于 Python 3 - 无法动态调整要删的字符集,每次改都要重做
maketrans()
别直接用 split() + join(),它会连多个空格之间的语义也抹掉
常见误区是写 ' '.join(s.split()) 或 ''.join(s.split())。前者压缩空格成单个,后者看似去空格,实则会把所有空白(包括换行)全转成空字符串再拼,中间无分隔 —— 看似结果对,但逻辑错位,且性能差。
-
"a\tb\n c".split()→['a', 'b', 'c'],原始分隔信息彻底丢失 - 如果原字符串含连续空格或混合空白,
split()会跳过它们,无法还原原始结构意图 - 比
replace()慢至少 2–3 倍,还多一次列表创建和遍历
真正需要“去掉空格”时,先问清楚:只要 ASCII 空格?还是要清掉所有空白?是否保留原始分隔语义?选错方法,后面 debug 时才发现数据被静默破坏,就晚了。
# python
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
企业网站制作这些问题要关注
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
Laravel如何使用Collections进行数据处理?(实用方法示例)
如何制作一个表白网站视频,关于勇敢表白的小标题?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
使用C语言编写圣诞表白程序
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
jQuery validate插件功能与用法详解
如何在云主机上快速搭建多站点网站?
JavaScript如何实现错误处理_try...catch如何捕获异常?
Swift中循环语句中的转移语句 break 和 continue
如何实现建站之星域名转发设置?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何快速搭建二级域名独立网站?
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
打造顶配客厅影院,这份100寸电视推荐名单请查收
nodejs redis 发布订阅机制封装实现方法及实例代码
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
免费网站制作appp,免费制作app哪个平台好?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
北京网站制作公司哪家好一点,北京租房网站有哪些?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
动图在线制作网站有哪些,滑动动图图集怎么做?
LinuxCD持续部署教程_自动发布与回滚机制
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
php 三元运算符实例详细介绍
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
微信小程序 五星评分(包括半颗星评分)实例代码
智能起名网站制作软件有哪些,制作logo的软件?
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何快速建站并高效导出源代码?
如何破解联通资金短缺导致的基站建设难题?
新三国志曹操传主线渭水交兵攻略
浅谈redis在项目中的应用
制作旅游网站html,怎样注册旅游网站?
如何在腾讯云免费申请建站?
上一篇:linux MBR是什么
下一篇:linux 设备有哪些类型
上一篇:linux MBR是什么
下一篇:linux 设备有哪些类型


格;translate()速度最快但需预定义字符集;split()+join()会丢失原始分隔结构且性能差。