繁体   English   中英

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

[英]Deleting characters from a string in Python

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

x = 'thisQ Qis'
l = ['t', 'h', 'i', 's']

for i in x:
    if i not in l:
        i =''
print(len(x))

#or

for i in x:
    if i not in l:
       list(x).remove(i)
print(len(x))

for i in x:
    if i not in l:
        x.replace("i", '')
print(x)

正如@Jahnavi Sananse 指出的那样,您应该使用.replace

但是要了解为什么您的代码不起作用,您需要知道字符串是不可变的。 您的第二次尝试几乎是正确的,但是您需要x = "".join(list(x).remove(i))而不是list(x).remove(i) ).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}
  1. 我们可以使用 string replace() function 将一个字符替换为一个新字符。
  2. 如果我们提供一个空字符串作为第二个参数,那么该字符将从字符串中删除。

s = 'abc12321cba'

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM