comparing two lists

Terry Reedy tjreedy at udel.edu
Fri Mar 5 12:17:43 EST 2010


On 3/5/2010 3:05 AM, jimgardener wrote:
> hi
> I have two lists of names.I need to find the difference between these
> two lists.I tried to do it using sets.But I am wondering if there is a
> better way to do it.Please tell me if there is a more elegant way.
> thanks,
> jim
>
> my code snippet follows..
>
> oldlst=['jon','arya','ned','bran']
> newlst=['jaime','jon','cersei']
>
> newlyadded=set(newlst)-set(oldlst)
> removed=set(oldlst)-set(newlst)
> unchanged=set(oldlst)&  set(newlst)

Except for the duplicate calls to set, this is fine. If order and 
duplication are irrelevant (and hashability is guaranteed), use sets to 
start with.

> print '%d were newly added= %s'%(len(newlyadded),list(newlyadded))
> print '%d were removed=%s'%(len(removed),list(removed))
> print '%d were unchanged=%s'%(len(unchanged),list(unchanged))
>
> this produces the output
> --------------
> 2 were newly added= ['jaime', 'cersei']
> 3 were removed=['ned', 'arya', 'bran']
> 1 were unchanged=['jon']





More information about the Python-list mailing list