Python:创建过滤器函数

Hig*_*ant 2 python function list

我正在尝试创建一个函数:

filter(delete,lst) 
Run Code Online (Sandbox Code Playgroud)

有人输入时:

filter(1,[1,2,1]) 
Run Code Online (Sandbox Code Playgroud)

回报 [2]

我想出的是使用list.remove函数,但它只删除第一个删除实例.

def filter(delete, lst):

"""

Removes the value or string of delete from the list lst

"""

   list(lst)

   lst.remove(delete)

   print lst
Run Code Online (Sandbox Code Playgroud)

我的结果:

filter(1,[1,2,1])
Run Code Online (Sandbox Code Playgroud)

回报 [2,1]

Ósc*_*pez 8

尝试使用列表推导:

def filt(delete, lst):
    return [x for x in lst if x != delete]
Run Code Online (Sandbox Code Playgroud)

或者,使用内置过滤功能:

def filt(delete, lst):
    return filter(lambda x: x != delete, lst)
Run Code Online (Sandbox Code Playgroud)

最好不要filter为你的函数使用名称,因为它与上面使用的内置函数名称相同

  • HighAllegiant:在这些情况下,**请**将“作业”标签添加到您的问题中。给你答案绝对没有帮助。 (2认同)