【问题标题】:Can you make functions that operate on a list in python?你能在python中制作对列表进行操作的函数吗?
【发布时间】:2021-10-04 18:42:59
【问题描述】:

在 python 中,您有一些内置函数可以对 list.remove()list.pop() 等列表进行操作。

您可以制作自己的自定义函数来执行此操作吗?我希望能够做到这一点:

def removeAll(self,value):
  while value in self:
    self.remove(value)

list = ["1","2","3","3","4","3","5"]
list.removeAll("3")
print(list)
#Outputs '["1","2","4","5"]

只是一个例子。

【问题讨论】:

  • 作为一般答案,this might help
  • 您想扩展List 类,否则它将是一个以list 作为输入并以新列表作为输出的函数?

标签: python list function class


【解决方案1】:

你不能修改内置类型,但你当然可以从列表中派生出你自己的类:

class mylist(list):
    def removeAll(self,n):
        while n in self:
            self.remove(n)

x = mylist([1,1,2,2,3,3,4,4])
x.removeAll(3)
print(x)

【讨论】:

  • 我的算法复杂度。更好的版本会做一堆索引和(仔细)相等大小的切片分配。
  • 好吧,如果我真的这样做,我会做相反的事情:创建一个只包含我想要的元素的新列表。算法不是重点。重点是“我们可以扩展内置列表类吗”。
【解决方案2】:

希望对你有帮助!

list1 = ["1", "2", "3"]
def operations_on_a_list():
    a = input("Enter the number which you want to delete or remove : ")
    list1.remove(a)
    return list1

if __name__ == '__main__':
    print(operations_on_a_list())
        

【讨论】:

  • 这和问题有什么关系?
  • 对不起,但现在我已经纠正了我的错误。希望现在对您有所帮助。
  • 问题是关于向列表类型添加方法。这根本无法回答问题。
猜你喜欢
  • 2016-11-19
  • 2015-07-20
  • 2022-08-11
  • 2021-09-14
  • 2015-12-17
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多