如何在不进行高级收集的情况下删除某个字母的所有出现? (蟒蛇)

时间:2019-03-06 01:23:27

标签: python

我已经在这段代码上工作了一段时间,但似乎无法弄清楚。我们不允许使用接头,.find()、. count()或.replace()。我必须使用for循环来做,但是似乎找不到解决方法。 当前代码如下:

def removeChar(word1, letter1):
    s1 =''
    length = len(word1)
    for i in range(length):
        if (letter1 in word1[i]):
            s1 = word1[i] 
    return s1

谢谢您的任何帮助。

4 个答案:

答案 0 :(得分:4)

您必须遍历您的字符串。每当遇到不是要排除的字母时,请将其添加到新字符串中。如果,请忽略它。迭代结束后,返回新字符串。

def removeChar(word1, letter1):
    new_string = ''
    for letter in word1:
        if (letter != letter1):
            new_string += letter
    return new_string

示例

>>> removeChar('hello', 'o')
'hell'
>>> removeChar('hello', 'l')
'heo'

答案 1 :(得分:1)

足够简单,可以一行完成:

new_word = ''.join(char for char in word if char != letter)

答案 2 :(得分:1)

最短的方法是使用类似这样的内容:

word = "let's remove some letters from this string"
letter = 's'

print(''.join(word.split(letter)))

说明:

  • split(letter)将使用字母作为分隔符的输入字符串分成字符串列表
  • 然后使用''.join联接此列表的所有元素,这将产生不带字符letter的字符串。
  • splitjoin是对字符串的基本操作

输出:

python remove_letter.py
let' remove ome letter from thi tring

答案 3 :(得分:0)

尝试

s1.extend([word[i]]))

此代码将为s1添加单个单词字母。当前,您的代码将s1全部设置为一个单词字母