gpt4 book ai didi

python - 从具有对象属性之一的对象列表中获取索引

转载 作者:行者123 更新时间:2023-12-04 00:33:41 24 4
gpt4 key购买 nike

我有一个对象列表,我试图从我拥有的对象的属性(例如名称)中获取该列表中一个对象的索引。类似于下面的例子:

class Employee:
def __init__(self, name):
self.name = name

def add_emp(name):
employees.append(Employee(name))

employees = []
add_emp('Emp1')

现在我正在尝试获取 self.employees 列表中“Emp1”的索引(此处为“0”)。我在这里尝试过:
print(employees.index(filter(lambda x: x.name == 'Emp1', employees)))

但他告诉我“ValueError: < filter object at 0xblabla > 不在列表中”。我必须改变什么或者有更好的选择来处理这个问题?

最佳答案

好吧,不要搜索过滤器本身,而是搜索过滤器找到的内容。例如,next(filter(...))而不是 filter(...) .

但真的更好用 enumerate :

print(next(i for i, x in enumerate(employees) if x.name == 'Emp1'))

或者您可以创建一个名称列表并询问索引:
print([x.name for x in employees].index('Emp1'))

不过,它的效率较低。

关于python - 从具有对象属性之一的对象列表中获取索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47057325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com