有没有一种方法可以在python中使用lambda函数删除第一次出现

有没有一种方法可以在python中使用lambda函数删除第一次出现,python,python-3.x,lambda,Python,Python 3.x,Lambda,我有下面创建的plist plist=['D','o','n','t','p','a','n','i','c'] 现在要完成的任务是删除字符p、a、n、D并将其附加到plist。但是这里有一个条件,如果有两个n,那么只有第一个n应该被删除 我已尝试使用lambda函数删除它们,但无法仅删除第一次出现的n Lambda函数:lst=list(过滤器(Lambda x:x.lower()不在['o','t',“','i','c','',plist中)) 有人能帮我想一想如何做到这一点。删除元素的第一

我有下面创建的plist

plist=['D','o','n','t','p','a','n','i','c']

现在要完成的任务是删除字符p、a、n、D并将其附加到plist。但是这里有一个条件,如果有两个n,那么只有第一个n应该被删除

我已尝试使用lambda函数删除它们,但无法仅删除第一次出现的n

Lambda函数:lst=list(过滤器(Lambda x:x.lower()不在['o','t',“','i','c','',plist中))

有人能帮我想一想如何做到这一点。

删除元素的第一次出现 如果您必须使用lambda(没有它会更容易)。 您可以尝试在lambda中返回此项:

lambda l,e:[x代表i,x在枚举(l)中如果i!=(l+[e])。索引(e)]
在上面的示例中,如果元素的索引与列表中第一次出现的索引不同,则返回该元素。在索引的压缩过程中,应该在结尾处连接元素以避免出现异常。如果连接的元素是第一次出现,则索引比列表中的每个索引都大,因此返回所有元素

如果不使用lambda:

def remove_first_出现(l,元素):
如果元素在l中:
l、 删除(元素)#删除第一次出现的内容
返回l
删除多个元素的第一个匹配项 如果要删除元素列表的第一个匹配项:

def删除多个元素(l,元素)的第一次出现:
对于元素中的元素:
如果元素在l中:
l、 删除(元素)#删除第一次出现的内容
返回l
plist=['D','o','n','t','p','a','n','i','c']
元素_-to_-remove=['o','t','s','i','c',']
new_plist=删除多个元素的第一个匹配项(plist,元素到删除)
打印(新列表)
重要的 在这个例子中,它是不同的“o”的“o”


我希望它能有所帮助

enumerate的用途是什么?enumerate方法返回元组列表。此列表中的每个元素都必须包含其中的元素(索引、值)。所以你有一个元素的位置和