删除字符串列表中的字符

use*_*563 22 python

如果我有一个字符串列表,例如:

[("aaaa8"),("bb8"),("ccc8"),("dddddd8")...]
Run Code Online (Sandbox Code Playgroud)

为了摆脱8每个字符串中的所有s,我该怎么办?我尝试使用stripreplace在for循环中,但它不像普通字符串(不在列表中)那样工作.有没有人有建议?

Joc*_*zel 44

试试这个:

lst = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")]
print([s.strip('8') for s in lst]) # remove the 8 from the string borders
print([s.replace('8', '') for s in lst]) # remove all the 8s 
Run Code Online (Sandbox Code Playgroud)

  • @JanVorcak不,原始列表不是元组列表,而是字符串列表.正如你自己写的那样,用`(x,)`创建一个元组,但不只是`(x)`. (6认同)

Tg.*_*Tg. 10

除了使用循环和理解之外,您还可以使用map

lst = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")]
mylst = map(lambda each:each.strip("8"), lst)
print mylst
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在Python 3中,`map`返回一个需要首先转换为列表的地图对象. (6认同)

小智 5

更快的方法是加入列表,替换 8 并分割新字符串:

mylist = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")]
mylist = ' '.join(mylist).replace('8','').split()
print mylist
Run Code Online (Sandbox Code Playgroud)