这段代码如何Pythonic?

发布于 2022-09-03 19:23:58 字数 212 浏览 21 评论 0

def remove_ignore_char(word):
    ignore_char = ['A', 'B', 'C',
           ]
    for char in ignore_char:
        if char in word:
            word = word.replace(char, '')
    return word

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

你如我软肋 2022-09-10 19:23:58
from functools import reduce

def remove_ignore_char(s):
    return reduce(lambda s, c: s.replace(c, ''), [s]+['A', 'B'])

python 2 则去掉第一行


import re
def remove_ignore_char(s):
    return re.sub('|'.join(['A', 'B']), '', s)
给不了的爱 2022-09-10 19:23:58

此法最简洁了吧~
python3

>>> 'ABCxAxBxFCABxCabc'.translate(''.maketrans('','','ABC'))
'xxxFxabc'
无人接听 2022-09-10 19:23:58
import re

def remove_ignore_char(word):
    return re.sub(r'[ABC]', '', word)
雨落星ぅ辰 2022-09-10 19:23:58
你要的解决方案
import string
table = string.maketrans("abcd", "    ")
word = "abcdefg"
word.translate(table)


将上面的代码封装成一个非常通用的函数
def translator(frm="", to="", delete="", keep=None):
    if len(to) == 1:
        to = to * len(frm)
    trans = string.maketrans(frm, to)
    if keep is not None:
        allchars = string.maketrans("", "")
        delete = allchars.translate(allchars, keep.translate(allchars, delete))
    def translate(s):
        return s.translate(trans, delete)
    return translate
abcd_to_empty = translator(frm="abcd", to="    ")
abcd_to_empty(word)
delete_vowels = translator(delete="aoieu")
delete_vowels(word)
del_digits = translator(delete="1234567890")
del_digits("abcdeeeee12223444dkfljadl")
鸠魁 2022-09-10 19:23:58
my $a = "This is aA TestABC"
$a.subst(/[ABC]/, '', :g)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文