Python编写函数移除列表元素中指定单词'Data'的方法
需求说明
现有若干列表,部分列表元素内包含单词Data,需要编写函数仅移除各元素内的Data单词,不得删除整个列表元素。
预期输入输出如下:
example_list = ['Client 1 Data','Client 2','Client 3 Data'] output_list = ['Client 1','Client 2','Client 3']
原有代码问题
你写的代码无法运行有两个核心问题:
replace是字符串类型的内置方法,直接对列表对象column调用replace会触发属性报错- 字符串是不可变对象,就算对列表内的字符串元素调用
replace,不把替换结果赋值回原列表对应位置的话,原列表不会产生任何变化
正确实现代码
版本1:直接修改传入的原列表
def my_func(column): for i in range(len(column)): # 替换字符串内的Data,再去掉首尾多余的空格,赋值回原列表位置 column[i] = column[i].replace('Data', '').strip()
调用测试:
example_list = ['Client 1 Data','Client 2','Client 3 Data'] my_func(example_list) print(example_list) # 输出结果:['Client 1', 'Client 2', 'Client 3']
版本2:不修改原列表,返回处理后的新列表
如果不想改动原始输入列表,可以用列表推导式直接生成新列表返回:
def my_func(column): return [item.replace('Data', '').strip() for item in column]
调用测试:
example_list = ['Client 1 Data','Client 2','Client 3 Data'] output_list = my_func(example_list) print(output_list) # 输出结果:['Client 1', 'Client 2', 'Client 3']
注:代码里加
strip()是为了清理移除Data后残留的首尾多余空格,如果你的业务场景需要保留这些空格,去掉strip()调用即可。
内容的提问来源于stack exchange,提问作者wellsinsideout
相关产品推荐
相关产品推荐

