test for list equality

Stefan Behnel stefan_ml at behnel.de
Thu Dec 15 13:01:12 EST 2011


noydb, 15.12.2011 18:49:
> On Dec 15, 11:36 am, noydb wrote:
>> I want to test for equality between two lists.  For example, if I have
>> two lists that are equal in content but not in order, I want a return
>> of 'equal' -- dont care if they are not in the same order.  In order
>> to get that equality, would I have to sort both lists regardless?  if
>> yes, how (having issues with list.sort)?
>>
>> Another way i tried, that I think is kind-of roundabout is like
>> x = [2, 5, 1, 88, 9]
>> y = [5, 2, 9, 1, 88]
>> inBoth = list(set(x)&  set(y))
>>
>> and then test that list.count is equal between inBoth and x and/or y.
>>
>> Any better suggestions?
>>
>> Thanks for any help!
>
> My sort issue... as in this doesn't work
> >>> if x.sort == y.sort:
> ... 	print 'equal'
> ... else:
> ... 	print 'not equal'
> ...
> not equal

alist.sort() is a method, so you have to call it in order to execute it. 
alist.sort will only give you a reference to the method. Comparing that to 
another method reference returns False, as expected.

Also, calling it does not return anything (useful), it modifies the list in 
place.

If you want to create a new list (which you don't want in this case, but 
anyway), you can use the sorted() builtin function.

Stefan




More information about the Python-list mailing list