Как сравнить два списка объектов, используя равный метод объекта в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сравнить два списка объектов, используя равный метод объекта в Python

Сообщение Anonymous »

У меня есть класс, который поставляется с методом .equals () . Я хотел бы сравнить два неупорядоченных списка этих объектов, чтобы увидеть, являются ли они не равны.
Мой текущий подход - это пройти через список 1, а затем пройти через список 2.

Код: Выделить всё

def objectListsNotEqual(list_1, list_2):
if(len(list_1) != len(list_2)):
return True

# same length lists, so check it
for obj_1 in list_1:
if(not(any(obj_1.equals(obj_2) for obj_2 in list_2))):
return True

for obj_2 in list_2:
if(not(any(obj_2.equals(obj_1) for obj_1 in list_1))):
return True

# if execution reaches here, then both lists match
return False
Тем не менее, это не учитывает, когда список 1 и список 2 имеют разные количество, когда метод .equals () возвращает true . например Если бы у меня было: < /p>

Код: Выделить всё

list_1 = [obj_1(foo), obj_2(foo), obj_3(bar)]
list_2 = [obj_4(foo), obj_5(bar), obj_6(bar)]

objectListsNotEqual(list_1, list_2) # --> returns False due to the use of any() function
Я бы хотел, чтобы функция вернула false в приведенном выше примере, поскольку у них есть различные показатели Foo и bar экземпляры объекта. Не знаю, как это работает внутри.

Подробнее здесь: https://stackoverflow.com/questions/795 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»