从 Python 中的字符串中删除字符
Deleting characters from a string in Python
我有一个字符列表。我想计算一个字符串中有多少个字符也在列表中。 x 是我的字符串,l 是我的列表。 (在我的列表中有 'space' 所以我需要用 '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)
- 我们可以使用字符串 replace() 函数将一个字符替换为一个新字符。
- 如果我们提供一个空字符串作为第二个参数,那么该字符将从字符串中删除。
s = 'abc12321cba'
print(s.replace('a', ''))
正如@Jahnavi Sananse 指出的那样,您应该使用 .replace
。
但要了解您的代码为何不起作用,您需要知道字符串是不可变的。
你的第二次尝试几乎是正确的,但你需要 x = "".join(list(x).remove(i))
而不是 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 是我的字符串,l 是我的列表。 (在我的列表中有 'space' 所以我需要用 '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)
- 我们可以使用字符串 replace() 函数将一个字符替换为一个新字符。
- 如果我们提供一个空字符串作为第二个参数,那么该字符将从字符串中删除。
s = 'abc12321cba'
print(s.replace('a', ''))
正如@Jahnavi Sananse 指出的那样,您应该使用 .replace
。
但要了解您的代码为何不起作用,您需要知道字符串是不可变的。
你的第二次尝试几乎是正确的,但你需要 x = "".join(list(x).remove(i))
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}