указать функцию компаратора в python словаре - PullRequest
0 голосов
/ 20 июня 2020

Есть ли способ передать пользовательскую функцию сравнения равенства при создании словаря python, чтобы он не использовал компараторы по умолчанию __eq__ или hash? Я надеюсь, что есть способ сделать это, но пока не смог его найти.

edit: Я ищу способ предоставить различные определения равенства объектов для классов, которые я определил. Например:

class A:
  def __init__(self, a, b):
    self.a = a 
    self.b = b

def c1(a1, a2):  # assume both are A objects
  return a1.a == a2.a

def c2(a1, a2):
  return a1.b == a2.b

# is this possible?
d1 = dict(cmp=c1)  
d2 = dict(cmp=c2)

Я знаю, что могу переопределить __eq__ et c в определении моего класса, но я могу переопределить его только один раз. В Java я могу использовать TreeMap , и я ищу эквивалент в Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...