Python 删除字符串/单词的方法

Python 删除字符串/单词的方法,python,function,methods,Python,Function,Methods,我正在尝试编写一个基于目标值在列表中删除项的方法。下面是: def remove (self, target_value): str_list = self.str_list pos = 0 for item in str_list: if item != target_value: str_list[pos] = item pos += 1 del str_list[pos:] return

我正在尝试编写一个基于目标值在列表中删除项的方法。下面是:

def remove (self, target_value):
    str_list = self.str_list
    pos = 0
    for item in str_list:
        if item != target_value:
            str_list[pos] = item
            pos += 1
    del str_list[pos:]
    return str_list
不幸的是,这只适用于一个单词,即

如果str_list=apple(在我的init方法中,它基本上被转换为一个list['a'、'p'、'p'、'l'、'e']

目标_项='a'

输出=pple

为了使其适用于多个单词,需要进行哪些更改

如果str_list=我吃了一个苹果

目标项目=ate

输出=一个苹果


PS:不允许使用内置方法。

最简单的方法是创建一个空列表,并将除目标之外的每个单词推入其中。然后返回该列表:

def remove_token(list_val, target_val):
    size=0
    for item in list_val:
         size += 1
    str_list = [None]*size
    pos = 0
    counter_target = 0
    for item in list_val:
        if item != target_val:
            #print(pos)
            str_list[pos] = item
            pos += 1
        else:
            counter_target +=1
    return str_list[:-counter_target]
详情如下:

print(remove_token(["I", "ate", "an", "apple"], "ate"))
给出一个输出:

['I', 'an', 'apple']

注意:为了清楚起见,我使用的是Python 3.6(除了
print
语句(对于Python 2.x)之外,它还适用于早期版本)

我不能使用.remove()或任何这样的内置方法。@asettouf OP说不允许使用内置方法。你的问题不是很具体:你只需要删除一次还是多次?无论如何,看看切片和递归。虽然我理解这是一个练习,我会考虑<代码> DEL>代码>和切片也内置的方法?<代码> ReXEX <代码>,我们能不能使用这个建议而不使用Le()函数?