调用函数去除列表中字符串的非字母

img

采用replace(),但是出来的结果还是没有变,我写的如下:

def clen_list(m):
if m.isalpha() != True:
for i in range(0,10):
m.replace("i","") and m.replace("/","") and m.replace("_","")
return m

coffeList=['32Latte','_Americano30','/34Cappuccino','Mocha45']
aList=[]
for item in coffeList:
t=clen_list(item)
aList.append(t)

print(aList)

谢谢~

字符串对象的replace操作,是返回一个替换后的结果,而不是对原字符串对象进行修改,因此你需要把替换后的结果赋值给某个变量才行

str.replace()非原址修改,而是返回修改后的字符串(主要问题)
m.replace("i", "")后m并未改变

import string

def clean_list(l = []):
   r = [[j for j in i if j in string.ascii_letters] for i in l] 
   return [''.join(i) for i in r] 

if __name__ == "__main__":
   ll = ['32Latte', '_Americano30', '/34Cappuccino', 'Mocha35']
   for idx,con in enumerate(clean_list(ll), 1):
      print(idx,' ', con)