发布:2026-11-02 · TIVIA
人工智能训练师三级数据清洗学习里,“去空格”要先写清位置。今天只练一个自拟任务:字段首尾多余空白要去掉,但值内部的空格有含义,必须保留。
本例约定:输入均为普通Python字符串,只去首尾空白,内部字符保持原样。不把所有空格都当噪声,也不把本例当成所有字段的通用清洗规则。
同一输入,两种结果
以原字符串“ A B ”为例,strip()得到“A B”,中间空格保留;replace(" ", "")得到“AB”,删掉了全部普通空格,两者不是同一任务。strip()返回新字符串,原字符串不会被就地修改,后续应使用返回值。
| 输入 | strip结果 | 检查点 |
|---|---|---|
" A B " | "A B" | 保留中间一个空格 |
"A B" | "A B" | 中间两个空格不合并 |
| 纯空白 | 空字符串 | 先按字段规则解释 |
" 0 " | "0" | 保留字符串0 |
先猜,再用断言核对
raw = " A B "
cleaned = raw.strip()
assert cleaned == "A B"
assert raw.replace(" ", "") == "AB"
assert raw == " A B " # strip返回新字符串,不改原值
values = [" A B ", " ", " 0 ", "A B", "\tA B\n"]
assert [v.strip() for v in values] == ["A B", "", "0", "A B", "A B"]
assert cleaned.strip() == cleaned
print(repr(cleaned))
5条断言通过:覆盖输出差异、原值保留、五个输入边界和再次清洗结果不变。它们验证的是本例规则,不是学习或产品效果。
自拟填空:要求只去首尾空白、保留内部空格,应写raw.____(),填strip。再解释为什么replace(" ", "")不满足要求:它会删除内部普通空格。
strip()默认处理首尾空白,不只普通空格;本例的制表符和换行符样例也会被去除。这里没有处理None、NaN或表格整列,实际数据要先核类型与字段约定。strip带参数时另有字符集合语义,本篇只讨论不传参数的strip()。
完成一次可解释的自测
今天只做一个学习动作:写下字段规则,再用“首尾有空格、中间有空格、全空白”三个输入预判结果,最后运行验证。先能解释保留什么,再决定删什么。
本文由TIVIA产品方发布,AI辅助整理并核对来源。TIVIA包含理论题学习与上机代码填空等学习内容;本例围绕数据清洗学习范围自拟,不是官方真题,不承诺命中、提分或通过。
实操体验范围 · 免费理论练习(固定样本,未必包含本文同题;完整版范围以产品说明为准)。
技术参考:Python官方str.strip、str.replace。
Tivia