Python删除前导空格错误

时间:2018-04-01 23:23:51

标签: python regex string

看起来很简单,"从列表中的字符串中删除空格"。但出于某种原因,我的代码没有用。

new_list = []
channels = "KMP, PRIME"
channel = channels.split(",")

for each in channel:
    re.sub(r'^[^a-zA-Z]*', ' ', each)
    new_list.append(each)

我也试过 lstrip / strip ,但都没有用。为什么? 如果我"欺骗"使用以下代码,它将工作。我仍然想要解决问题的根源。为了使它正确,我应该改变什么?

  

channel = channels.split(",")

3 个答案:

答案 0 :(得分:3)

以下是使用列表推导和str.strip的一种方法。

请注意,此任务似乎不需要正则表达式。

channels = 'KMP, PRIME'

lst = [i.strip() for i in channels.split(',')]
# ['KMP', 'PRIME']

res = ','.join(lst)
# KMP,PRIME

答案 1 :(得分:1)

来自(Docs):

  

返回通过替换字符串中最左边不重叠的模式而获得的字符串...

您需要保持按.sub()

重新调整的值
for each in channel:
    new_list.append(re.sub(r'^[^a-zA-Z]*', ' ', each))

答案 2 :(得分:0)

您也可以尝试这种方法:

print(list(map(lambda x:x.strip(),channels.split(','))))

输出:

['KMP', 'PRIME']