Использование списка в качестве 1 аргумента в replace () - PullRequest
2 голосов
/ 25 марта 2020

Пытаюсь решить.

У меня есть строка из пользовательского ввода. И я хочу переместить все специальные символы из списка = [',', '.', '"', '\' ',': ',]

, используя функцию замены, которую я могу удалить один за другим, используя что-то вроде:

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

, но я хочу удалить все специальные chr. в одном go. Я попытался:

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

Ответы [ 3 ]

1 голос
/ 26 марта 2020

разобрался:

def remove_specialchr(string):
    unwanted_specialchr = [',', '.', '"', '\'', ':',]
    for chr in string:
        if chr in  unwanted_specialchr:
            string = string.replace(chr, '')
    return string
1 голос
/ 26 марта 2020

Ну, я думаю, что ваше решение могло бы быть лучше с оптимизацией:

def remove_specialchr(string):
    specialChr = {',', '.', '"', '\'', ':'}
    stringS = ''
    for chr in string:
        if chr not in specialChr:
            stringS += it
    return stringS
1 голос
/ 25 марта 2020

вы можете использовать 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!'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...