Python 如何从列表中删除特定对象?
我正在尝试学习python中的一些基本列表理解,下面是我正在处理的代码:Python 如何从列表中删除特定对象?,python,list,class,Python,List,Class,我正在尝试学习python中的一些基本列表理解,下面是我正在处理的代码: class myClass: def __init__(self,num): self.num = num x = myClass(1) y = myClass(2) z = myClass(3) obj = [x,y,z] 这里,我想从列表“obj”中删除一个对象,它的self.num值是3,我该怎么做? 还假设列表中的每个对象都有自己唯一的self.num值。这可以通过多种方式实现,但一般
class myClass:
def __init__(self,num):
self.num = num
x = myClass(1)
y = myClass(2)
z = myClass(3)
obj = [x,y,z]
这里,我想从列表“obj”中删除一个对象,它的self.num
值是3,我该怎么做?
还假设列表中的每个对象都有自己唯一的
self.num
值。这可以通过多种方式实现,但一般算法是:
for o in obj:
if o.num == 3:
index = obj.index(o)
现在您有了对象的索引,您可以使用obj.pop(index)
删除它
另一种方法是列表理解:
obj = [o for o in obj if o.num != 3]
这可以通过多种方式实现,但一般算法为:
for o in obj:
if o.num == 3:
index = obj.index(o)
现在您有了对象的索引,您可以使用obj.pop(index)
删除它
另一种方法是列表理解:
obj = [o for o in obj if o.num != 3]
非常快速的方法是使用Python内置方法
过滤器:
list(filter(lambda x:x.num!=3, obj))
这比列表理解快一点。相当快的方法是使用Python内置的方法过滤器:
list(filter(lambda x:x.num!=3, obj))
这比列表理解要快一点。您只需通过列表理解就可以做到这一点
obj=[i为obj中的i,如果i.num!=3]
您只需理解列表即可完成此操作
obj=[i为obj中的i,如果i.num!=3]
您可以为您的类实现\uuuuueq\uuuu
。使用这种方法,您可以隐藏类的内部细节,并且将来在不破坏代码的情况下更容易更改相等逻辑
看_
输出
[num: 1, num: 2]
您可以为您的类实现\uuuuuu eq\uuuu
。使用这种方法,您可以隐藏类的内部细节,并且将来在不破坏代码的情况下更容易更改相等逻辑
看_
输出
[num: 1, num: 2]
obj=[o代表obj中的o,如果obj.num!=3]
obj=[o代表obj中的o,如果obj.num!=3]
列表理解意味着什么?它仍然不被推荐-列表理解意味着什么?它仍然不被推荐-总体上回答得很好(从函数编程角度来看),但实际上。它是不同的,但在这个特殊的情况下,它在我的电脑上的速度是原来的2倍。好了,伙计们,这是一个关于迭代器的新东西,我以前知道,但我错了。我为一个包含10万个实例的列表计时,如果剩余列表很小,理解速度将提高50%,如果可移动项目很少,理解速度将提高30%。总体回答不错(函数编程方面),但实际上。它是不同的,但在这个特殊的情况下,它在我的电脑上的速度是原来的2倍。好了,伙计们,这是一个关于迭代器的新东西,我以前知道,但我错了。我为一个包含1000万个实例的列表计时,如果剩余列表很小,理解速度将提高50%,如果可移动项目很少,理解速度将提高30%。