删除字符串/单词的方法

时间:2017-04-26 10:24:40

标签: 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 str_list

不幸的是,这只适用于单个词,即

如果str_list = apple(它基本上转换为列表[' a'' p',' p',' l&#39我的初始化方法中的,' e'

target_item =' a'

输出= pple。

需要进行哪些更改才能使其适用于多个单词,即

如果str_list =我吃了一个苹果

target_item = ate

输出=我是个苹果

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

1 个答案:

答案 0 :(得分:3)

直接的方法是创建一个空列表,然后推入除目标之外的每个单词。然后返回该列表:

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))