【发布时间】:2022-01-08 01:39:09
【问题描述】:
我有一个类的所有实例的列表。在给定属性值的情况下,我试图找出该列表中实例的索引。
例如。我有以下代码:
class Test():
all_objects=[]
def __init__(self,name,age):
self.name = name
self.age = age
Test.all_objects.append(self)
Test("joe",23)
Test("kate",16)
Test("adam",56)
#this is ugly ..
for ind,item in enumerate(Test.all_objects):
if item.name == 'joe':
print(ind)
我可以通过遍历列表中的每个元素来找到实例的索引。 有更好的方法吗?(可能以某种方式使用 index() 方法)
澄清:
我正在寻找一种无需遍历all_objects 列表的方法。看看下面的 cmets 和答案,似乎没有办法解决这个问题。
感谢大家为我确认这一点。
【问题讨论】:
-
[obj.name for obj in Test.all_objects].index('joe')? -
没有迭代就没有办法。
-
如果实例名称应该是唯一的,也许您想使用字典而不是
all_objects的列表? -
它并不难看——它非常可读——我只使用这种方法作为首选。
标签: python python-3.x list class oop