我正在尝试根据目标值在列表中编写项目删除方法。这是:
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:不允许使用内置方法。
答案 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))