人工智能训练师三级:strip去首尾空白,会删掉中间空格吗?

TIVIA人工智能训练师三级Python数据清洗自测:区分strip与replace,保留内部空格,附五条断言和可运行自拟代码。

发布: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。

微信学习群二维码

扫码加入学习群

使用微信扫描上方二维码