gpt4 book ai didi

python - 查找列表中类实例的位置

转载 作者:行者123 更新时间:2023-12-01 02:16:58 24 4
gpt4 key购买 nike

给定一个类,比如说

class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart

我想找到此类实例在列表中的位置。例如,给定

list = [1, 2, 3, Complex(1, 1)]

如何找到Complex(1, 1)的位置?

我试过list.index(Complex(1, 1)) ,而是第二次调用 Complex 创建的对象与第一个不同,因此结果是 ValueError引发异常。

我怎样才能做到这一点?

更一般地说,我如何在 Complex 的任何实例的列表中找到位置(例如 list = [1, Complex(1, 1), 2, Complex(2, 2)] 返回 13 )?

最佳答案

您可以为您的类定义 __eq__ 方法,该方法将用于任何相等运算符。这将使 list.index 按您的预期工作。

class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
def __eq__(self, other):
if isinstance(other, Complex):
return self.r == other.r and self.i == other.i
else:
return False

示例

>>> l = [1, 2, 3, Complex(1, 1)]
>>> l.index(Complex(1, 1))
3

关于python - 查找列表中类实例的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48305487/

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