Зачем устанавливать разрывы равенства здесь? - PullRequest
0 голосов
/ 30 января 2019

У меня есть функция f, которая определена следующим образом:

def f(doc):
    return filter(lambda ent: ..., doc.ents)

doc является объектом документа Spacy, а doc.ents возвращает объект генератора.Также есть doc.noun_chunks, который возвращает объект генератора.Однако происходит нечто странное:

>>> a = list(f(doc))
[Apple, Banana]

>>> b = list(doc.noun_chunks)
[Banana, Apple]

>>> a[0] == b[1]
True

>>> a[1] == b[0]
True

>>> set(a) == set(b)
False

>>> list(set(a))[0] == list(set(b))[1]
True

>>> list(set(a))[1] == list(set(b))[0]
True

>>> set(list(set(a))) == set(list(set(b)))
False

Почему здесь не работает равенство множеств?!

PS Я пишу приложение для клиента, использующего Spacy, поэтому, к сожалению, не могу вставитьполный код, а также фальшивые имена «f», «яблоко» и «банан» ... но это не должно иметь значения.

...