# Fix Python – Check if two unordered lists are equal [duplicate]

## Question

Asked By – Paul

I’m looking for an easy (and quick) way to determine if two unordered lists contain the same elements:

For example:

``````['one', 'two', 'three'] == ['one', 'two', 'three'] :  true
['one', 'two', 'three'] == ['one', 'three', 'two'] :  true
['one', 'two', 'three'] == ['one', 'two', 'three', 'three'] :  false
['one', 'two', 'three'] == ['one', 'two', 'three', 'four'] :  false
['one', 'two', 'three'] == ['one', 'two', 'four'] :  false
['one', 'two', 'three'] == ['one'] :  false
``````

I’m hoping to do this without using a map.

Now we will see solution for issue: Check if two unordered lists are equal [duplicate]

Python has a built-in datatype for an unordered collection of (hashable) things, called a `set`. If you convert both lists to sets, the comparison will be unordered.

``````set(x) == set(y)
``````

Documentation on `set`

EDIT: @mdwhatcott points out that you want to check for duplicates. `set` ignores these, so you need a similar data structure that also keeps track of the number of items in each list. This is called a multiset; the best approximation in the standard library is a `collections.Counter`:

``````>>> import collections
>>> compare = lambda x, y: collections.Counter(x) == collections.Counter(y)
>>>
>>> compare([1,2,3], [1,2,3,3])
False
>>> compare([1,2,3], [1,2,3])
True
>>> compare([1,2,3,3], [1,2,2,3])
False
>>>
``````

This question is answered By – Katriel

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0