The best way to check if two lists have identical values
mk
mrkafk at gmail.com
Thu Feb 25 08:30:12 EST 2010
Hello everyone,
I have stumbled upon this seemingly trivial problem: the answer is not
there in http://www.python.org/doc/faq/programming/, and googling does
not return many references really (at least for me).
I have come up with this:
def qips_identical(q, oldq):
qips = map(operator.itemgetter(1), q)
oldqips = map(operator.itemgetter(1), oldq)
if len(qips) != len(oldqips):
return False
dif = set(qips) ^ set(oldqips)
if len(dif):
return False
return True
There's a number of complications here, depending on definition of
'lists with identical values', like whether the same value can be
repeated different number of times in two lists, or whether the order of
values matters.
In above example I assumed that the same values have to be repeated the
same numbers of times in both lists and that order doesn't matter so
long as the values are the same.
I was wondering if there's a better / shorter / faster way to do this --
not necessarily in the same variant, e.g. variant where order of two
lists matters would be interesting as well.
Regards,
mk
More information about the Python-list
mailing list