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()函数?