我正在使用一个具有以下代码功能的类:
#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!
答案 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]