Сравнить элементы в двух списках в Python - PullRequest
0 голосов
/ 05 мая 2018

У меня есть два списка, как показано ниже:

a = ['abc','def', 'ghi'], b=['ZYX','WVU']

и хотите подтвердить, равен ли union обоих списков надмножеству

c = ['ZYX', 'def', 'WVU', 'ghi', 'abc'] 

Я пробовал следующее:

>>> print (c == list(set(b).union(c)))
>>> False

Кто-нибудь может показать, чего мне здесь не хватает?

1 Ответ

0 голосов
/ 05 мая 2018

Просто используйте метод set, потому что порядок элементов в списках различен, и поэтому вы получили False в результате.

print (set(c) == set(list(set(b).union(c))))

Другое решение - использовать класс Counter. Подход Counter должен быть более эффективным для больших списков, поскольку он имеет линейную сложность по времени (т.е. O (n))

from collections import Counter
Counter(c) == Counter(list(set(b).union(c))))
...