1

python新手,所以希望能得到一些帮助。尝试构建一个函数(到目前为止很遗憾失败),其目的是从单词中删除指定的字母,然后返回结果。

例子:

word_func('鸟', 'b')

然后返回的结果将给出 'ird' 并删除 b。

我重新开始的功能是:

def word_func('单词', '字母'):

任何帮助,将不胜感激。我想我在脑海里把这件事复杂化了。

4

3 回答 3

3

如何使用replace()

>>> def word_func(word, letter):
...     return word.replace(letter, '')
... 
>>> word_func('bird', 'b')
'ird'
于 2013-08-27T10:07:25.467 回答
1

Python 中的所有字符串都有一个replace函数。

>>> 'bird'.replace('b', '')
'ird'

如您所见,哪些功能非常类似于删除字母(或一系列字母)

>>> 'bird'.replace('bi', '')
'rd'

但是如果你只想删除字母的第一个实例,或者字母的第一个n实例,你可以使用第三个参数,

>>> 'this is a phrase'.replace('s','') # remove all
'thi i a phrae'
>>> 'this is a phrase'.replace('s','',1) # remove first
'thi is a phrase'
>>> 'this is a phrase'.replace('s','',2) # remove first 2
'thi i a phrase'

你甚至可以使用一些技巧从最后删除,并反转字符串。

>>> 'this is a phrase'[::-1].replace('s','',2)[::-1] # remove last 2
'this i a phrae'
于 2013-08-27T10:07:32.837 回答
0

您可以使用map加入lambda

def word_func(word, letter):
    return "".join(map(lambda x: x if x !=letter else "",word))


if __name__ =="__main__":
    word = "bird"
    letter = "r"
    print word_func(word, letter)

印刷:

出价

或者您可以使用过滤器并加入 lambda:

def word_func(word, letter):
    return filter(lambda x: x !=letter, word)

不需要加入输出,因为:

如果 iterable 是字符串或元组,则结果也具有该类型

于 2013-08-27T10:08:32.407 回答