在Python中从字符串中删除字符

在Python中从字符串中删除字符,python,list,string-length,Python,List,String Length,我有一个字符列表。我想计算一下列表中的字符串中有多少个字符。x是我的字符串,l是我的列表。(在我的列表中有“空格”,所以我需要用“nothing”替换任何错误的字符),但我的代码不起作用,因为它返回的是原始的len(x),而不是新的len(x)。你能帮我更正代码吗 x='thisQ-Qis' l=['t','h','i','s'] 对于x中的i: 如果我不在l: i='' 印刷品(透镜(x)) #或 对于x中的i: 如果我不在l: 列表(x).删除(i) 印刷品(透镜(x)) 对于x中的i: 如

我有一个字符列表。我想计算一下列表中的字符串中有多少个字符。x是我的字符串,l是我的列表。(在我的列表中有“空格”,所以我需要用“nothing”替换任何错误的字符),但我的代码不起作用,因为它返回的是原始的len(x),而不是新的len(x)。你能帮我更正代码吗

x='thisQ-Qis'
l=['t','h','i','s']
对于x中的i:
如果我不在l:
i=''
印刷品(透镜(x))
#或
对于x中的i:
如果我不在l:
列表(x).删除(i)
印刷品(透镜(x))
对于x中的i:
如果我不在l:
x、 替换(“i”,“i”)
打印(x)
  • 我们可以使用string replace()函数将一个字符替换为一个新字符
  • 如果我们提供一个空字符串作为第二个参数,那么该字符将从字符串中删除
  • s='abc12321cba'


    打印(s.replace('a','')

    正如@Jahnavi Sananse所指出的,您应该使用
    。replace

    但是要理解代码为什么不工作,您需要知道字符串是不可变的。 您的第二次尝试几乎是正确的,但不是
    list(x).remove(i)
    您需要
    x=“”.join(list(x).remove(i))


    .join
    将字符串放在列表中每个元素之间的点之前,并将其保存在一个新字符串中。

    如果要将所有字符保留在一个列表中,而不是另一个列表中,则类似的操作可以:

    x     = 'thisQ Qis'
    l     = 'tihs '     #A string is already a list of characters. 
    new_x = ''.join(c for c in x if c in l)
    
    如果要对字符串中的字符进行计数,可以使用.count()方法完成。在这里,我创建了一个字典,其中包含测试的每个字母的计数

    count = {c:x.count(c) for c in l}
    

    字符串是不可变的,所以您不能修改它,您可以创建一个新列表,其中包含字符串x中的字符,然后将列表转换为字符串。您可以发布“x”和“l”的示例吗?@BobbyOcean编辑了我的问题。谢谢!我编辑了我的问题,添加了我认为我可以如何使用你的答案。但它不起作用。我想知道我是否把它格式化错了。