Search code examples
pythonlist-comprehensionunique

to compare data of above 2 lists & add unique items only to 3rd list


I tried to get it this way, but it didn't work:

item1 = ['eraser', 'pen', 'pencil', 'ruler']
item2 = ['marker', 'pen', 'sharpner', 'compass', 'eraser']

unique_item = [item for item in item1 if item in item2]

print("Unique items from the list", unique_item)

Solution

  • Use set and subtract the intersection from the union:

    >>> set_1 = set(['eraser','pen','pencil','ruler'])
    >>> set_2 = set(['marker','pen','sharpner','compass','eraser'])
    >>> list((set_1 | set_2) - (set_1 & set_2))
    ['compass', 'marker', 'sharpner', 'ruler', 'pencil']
    

    Or use method set.symmetric_difference():

    >>> list(set_1.symmetric_difference(set_2))
    ['compass', 'ruler', 'pencil', 'marker', 'sharpner']