在Python中从字符串中删除字符
我有一个字符列表。我想计算一下列表中的字符串中有多少个字符。x是我的字符串,l是我的列表。(在我的列表中有“空格”,所以我需要用“nothing”替换任何错误的字符),但我的代码不起作用,因为它返回的是原始的len(x),而不是新的len(x)。你能帮我更正代码吗在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='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)
打印(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编辑了我的问题。谢谢!我编辑了我的问题,添加了我认为我可以如何使用你的答案。但它不起作用。我想知道我是否把它格式化错了。