0

我的清单是,

a=["# abc" ,"def","ghi" ,"jkl #"]

我希望我的输出是这样的,

a=["abc","def","ghi","jkl"]

我试过这段代码,但我不能去掉“#”

for item in a:
    if any("#" in item):
        item.strip("#")

如何从列表中的项目中删除“#”?

4

3 回答 3

2

您的代码存在一些问题:

  1. 首先,any()这里不需要使用。你可以做if "#" in item:

  2. 而不是修改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]
于 2013-09-02T05:58:13.833 回答
1

使用str.stripwith'# '作为参数来删除周围#和空格:

>>> [x.strip('# ') for x in a]
['abc', 'def', 'ghi', 'jkl']
于 2013-09-02T05:48:59.577 回答
0
a = [b.replace('#', '') for b in a]

或者如果你也想要空间去

a = [b.replace('#', '').replace(' ', '') for b in a]
于 2013-09-02T05:47:33.653 回答