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

Python:清洗列表中字符串元素,去除逗号与数字并规范化

解决方案

你的代码存在几个核心问题:

  • Python字符串是不可变类型,strip()不会修改原字符串,必须接收其返回值才会生效;
  • 遍历字符串的每个字符(for j in i)完全没必要,应该直接对整行做批量处理;
  • 没有将处理后的结果保存回列表。

针对三种格式的字符串,我们可以写一个通用处理函数,一次性完成所有清理:

def clean_string(s):
    # 移除所有逗号
    s = s.replace(',', '')
    # 移除数字编号(如"1. "、"10. ")
    import re
    s = re.sub(r'\d+\.\s*', '', s)
    # 合并多余空格,同时去除首尾空格
    s = ' '.join(s.split())
    return s

# 原始数组
array = ['Apple Mug Seaweed Wallet Toilet Bear Toy Key Alcohol Paper',
         'cup, egg, pillow, leash, banana, raindrop, phone, animal, shirt, basket', 
         '1. Dog 2. America 3. Notebook 4. Moisturizer  5. ADHD 6. Balloon  7. Contacts 8. Blanket 9. Home 10. Pencil']

# 生成清理后的数组
cleaned_array = [clean_string(item) for item in array]

print(cleaned_array)

代码细节说明:

  1. 移除逗号:用replace(',', '')直接批量替换所有逗号,适配第二行的格式;
  2. 清理数字编号:正则表达式\d+\.\s*匹配"1个或多个数字+点+任意数量空格"的模式,用re.sub替换为空,处理第三行的编号;
  3. 统一空格格式:s.split()会自动按任意数量空格分割字符串,再用' '.join()将元素用单个空格连接,同时去除首尾空格,让所有行的格式一致;
  4. 列表推导式:遍历原数组的每个元素,用处理函数转换后生成新数组,高效完成批量处理。

运行后得到的结果完全符合你的需求:

['Apple Mug Seaweed Wallet Toilet Bear Toy Key Alcohol Paper',
 'cup egg pillow leash banana raindrop phone animal shirt basket',
 'Dog America Notebook Moisturizer ADHD Balloon Contacts Blanket Home Pencil']

如果你不想用正则,也可以通过拆分字符串过滤数字编号,但正则的方式更简洁通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:45:38