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

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to