从列表中删除条目(类[功能])

时间:2013-06-12 22:45:38

标签: python class

我正在使用一个具有以下代码功能的类:

#delete the specified entry from the list if entry in list
def deleteEntry(self,entry):
    if entered in self.alist():
    remove.entered()

alist首先要求用户输入。 如果它在列表中,你如何编写一个从列表中删除条目的函数? 谢谢 ! 使用Python 3.3.1 BTW!

3 个答案:

答案 0 :(得分:0)

def deleteEntry(self, entry):
    try:
        self.alist.remove(entry)
    except ValueError:
        pass # entry was not in the list

这假设self.alist是您希望从中删除项目的列表。

请注意,如果列表中可能多次出现entry并且您要删除所有匹配项,则需要将其置于循环中,因为list.remove()仅删除第一个匹配项:

def deleteEntry(self, entry):
    while True:
        try:
            self.alist.remove(entry)
        except ValueError:
            return # entry was not in the list

答案 1 :(得分:0)

remove()只是list的一种方法:

mylist = ['foo','bar','baz']
print mylist
>>> ['foo','bar','baz']

mylist.remove('bar')
print mylist
>>> ['foo','baz']

答案 2 :(得分:0)

如果您只需删除一个案例,则可以使用myList.remove("bar")。如果您试图删除某个元素的所有外观,并且/或者您有几个要删除的元素,那么最好使用filter():

removed = ['foo', 'bar', 'zee']

myList = ['foo', 'asdf', 'bar', 'bs', 5]

myList = filter(lambda x: not x in removed, myList) #myList = ['asdf', 'bs', 5]