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

时间:2013-09-02 05:38:17

标签: python list strip

我的清单是,

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

我希望我的输出像这样,

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

我尝试了这段代码,但我无法删除“#”

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

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

3 个答案:

答案 0 :(得分:2)

您的代码存在一些问题:

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

  2. 您不想修改item(绝对不做任何事情),而是要将解决方案附加到另一个列表中,如下所示:


  3. 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]