On 15/12/2011 17:49, noydb wrote:
On Dec 15, 11:36 am, noydb<jenn.du...@gmail.com> 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
???
.sort is a method which sorts the list in-place and returns None. You
must provide the () if you want to call it, otherwise you just get a
reference to the method:
>>> x
[2, 5, 1, 88, 9]
>>> x.sort
<built-in method sort of list object at 0x00A58508>
>>> x.sort()
>>> x
[1, 2, 5, 9, 88]
There's also a function "sorted" which returns its argument as a sorted
list. The argument itself isn't altered:
>>> y = [5, 2, 9, 1, 88]
>>> sorted(y)
[1, 2, 5, 9, 88]
>>> y
[5, 2, 9, 1, 88]
It's all in the documentation! :-)
--
http://mail.python.org/mailman/listinfo/python-list