Esmail wrote:
What is the best way to compare the *contents* of two different
lists regardless of their respective order? The lists will have
the same number of items, and be of the same type.
E.g. a trivial example (my lists will be larger),
a=[1, 2, 3]
b=[2, 3, 1]
should yield true if a==b
I suppose I could sort them and then compare them. I.e.,
sorted(a)==sorted(b)
I am wondering if there is a more efficient/preferred way to do so.
Thanks,
Esmail
--
http://mail.python.org/mailman/listinfo/python-list
=========================================
Technically, == is reserved for identical, as in byte for byte same
->If sorted(listA) == sorted(listB):
-> etc....
Is the preferred.
While there are other ways, the ones I know of are much more computer
intensive.
Things like:
get (next) line from file1
if checking it against each line of file2 yields a found
loop
else
...
are a real I/O killers.
Indexes are good but introduce a separate maintenance issue.
By the way - does original order of original files count?
If not, sorting AND KEEPING can speed up future things.
Of course each method has its time and place of use and Python has some
well oiled list search and list maintain routines of its own. List
comparisons are most accurate when using presorted ones. (Some things
don't lend themselves to sorting very well. Like paragraphs, books,
chapters, computer programs, manuals, etc... These need the searchers
(equivalent to the Unix diff) for checking equivalence.)
HTH
Steve
--
http://mail.python.org/mailman/listinfo/python-list