我的清单是,
a=["# abc" ,"def","ghi" ,"jkl #"]
我希望我的输出是这样的,
a=["abc","def","ghi","jkl"]
我试过这段代码,但我不能去掉“#”
for item in a:
if any("#" in item):
item.strip("#")
如何从列表中的项目中删除“#”?
您的代码存在一些问题:
首先,any()
这里不需要使用。你可以做if "#" in item:
而不是修改item
(这绝对不会做任何事情),您需要将解决方案附加到另一个列表,如下所示:
new = []
for item in a:
if "#" in item:
new.append(item.strip("#"))
请记住,在 python 中,字符串是不可变的,因此str.strip()
不会修改字符串。
此外,如果您想摆脱额外的空格,那么您需要在调用中添加一个额外的空格来剥离:
new.append(item.strip("# "))
最后,这是列表推导派上用场的地方:
[i.strip('# ') for i in a]
使用str.strip
with'# '
作为参数来删除周围#
和空格:
>>> [x.strip('# ') for x in a]
['abc', 'def', 'ghi', 'jkl']
a = [b.replace('#', '') for b in a]
或者如果你也想要空间去
a = [b.replace('#', '').replace(' ', '') for b in a]