R (Chandra) Chandrasekhar wrote:
Dear Folks,

I have lines of values like so:

14, [25, 105, 104]
10, [107, 106, 162]
21, [26, 116, 165]

I need to sort them in two ways:

(a) By the numeric value of the first column; and

(b) by the sum of the elements of the second item in each list, which is a list in itself.

At present, I have appended each line into a list L so that I for teh above minimal data, I have a list of lists thus:

[[14, [25, 105, 104]], [10, [107, 106, 162]], [21, [26, 116, 165]]]

I have tried using

(a) sorted(L, key = lambda x:(x[0]))

and

(b) sorted(L, key = lambda x:(sum(x[1])))

and get the anticipated results for (a) and (b0, at least with the above minimal data set.

Is this a sensible way to go about the sorting, or are there better ways of doing it in Python?

It's the obvious way to do it.

Also, I am baffled because the above fails obviously when len(L) is about a hundred and I can't figure out why.

You'd have to post an example of that, but you could try deleting some
of the entries before sorting so see whether you can still reproduce the
problem with a smaller list.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to