test for list equality
MRAB
python at mrabarnett.plus.com
Thu Dec 15 13:06:01 EST 2011
On 15/12/2011 17:49, noydb wrote:
> On Dec 15, 11:36 am, noydb<jenn.du... at 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! :-)
More information about the Python-list
mailing list