我的清单是,
a=["# abc" ,"def","ghi" ,"jkl #"]
我希望我的输出像这样,
a=["abc","def","ghi","jkl"]
我尝试了这段代码,但我无法删除“#”
for item in a:
if any("#" in item):
item.strip("#")
如何从列表中的项目中删除“#”?
答案 0 :(得分:2)
您的代码存在一些问题:
首先,不需要在这里使用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]
答案 1 :(得分:1)
使用str.strip
和'# '
作为参数删除周围的#
和空格:
>>> [x.strip('# ') for x in a]
['abc', 'def', 'ghi', 'jkl']
答案 2 :(得分:0)
a = [b.replace('#', '') for b in a]
或者如果你想要空格也一样
a = [b.replace('#', '').replace(' ', '') for b in a]