在replace()中将列表用作1个参数

2024-04-24 15:09:35 发布

您现在位置:Python中文网/ 问答频道 /正文

试图解决这个问题

我有一个来自用户输入的字符串。我想重新移动列表中的所有特殊字符= [,,,,,,,,,,,,,,,,,,,]

使用replace函数,我可以一个接一个地删除。使用类似于:

string = "a,bhc:kalaej jff!"
string.replace(",", "")

但是我想一次性删除所有特殊的chr。我已经尝试过:

unwanted_specialchr = [',', '.', '"', '\'', ':',]
string = "a,bhc:kalaej jff!"
string.replace(unwanted_specialchr, "")

Tags: 函数字符串用户列表stringreplacechr特殊字符
3条回答

我认为通过优化,您的解决方案可能会更好:

def remove_specialchr(string):
    specialChr = {',', '.', '"', '\'', ':'}
    stringS = ''
    for chr in string:
        if chr not in specialChr:
            stringS += it
    return stringS

您可以使用re.sub

import re

unwanted_specialchr = [',', '.', '"', '\'', ':',]
string = "a,bhc:kalaej jff!"
re.sub(f'[{"".join(unwanted_specialchr)}]', '', string)

输出:

'abhckalaej jff!'

或者您可以使用:

''.join(c for c in string if c not in unwanted_specialchr)

输出:

'abhckalaej jff!'

我想出来了:

def remove_specialchr(string):
    unwanted_specialchr = [',', '.', '"', '\'', ':',]
    for chr in string:
        if chr in  unwanted_specialchr:
            string = string.replace(chr, '')
    return string

相关问题 更多 >