Python - Use 'set' to find the different items in list

RPiAwesomeness picture RPiAwesomeness · Mar 16, 2013 · Viewed 44.3k times · Source

I need to compare two lists in Python, and I know about using the set command to find similar items, but is there a another command I could use that would automatically compare them, instead of having to code for it?

I would like to find the items that aren't in each one. Say list one is as follows:

[1, 2, 3, 4, 5, 6] 

and list two is:

[1, 2, 3, 4, 6]

I want to find that 5 is missing from the list, hopefully by a command, but I do know how to loop through comparing.

Answer

Seth picture Seth · Mar 17, 2013

The docs are a good place to start. Here are a couple examples that might help you determine how you want to compare your sets.

To find the intersection (items that are in both sets):

>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a & b
set([4, 5, 6])

To find the difference (items that only in one set):

>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a - b
set([1, 2, 3])
>>> b - a
set([7, 8, 9])

To find the symmetric difference (items that are in one or the other, but not both):

>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a ^ b
set([1, 2, 3, 7, 8, 9])

Hope that helps.