Hi,
I liked the twist at the end when you state that only the first two 2's
count. It reminded me
of my maths O'level revision where you always had to read the question
thoroughly.

Here is what I came up with:

>>> ref
[2, 2, 4, 1, 1]
>>> lst
[2, 2, 5, 2, 4]
>>> tmp = [ [val]*min(lst.count(val), ref.count(val)) for val in set(ref)]
>>> tmp
[[], [2, 2], [4]]
>>> answer = [x for y in tmp for x in y]
>>> answer
[2, 2, 4]
>>>

I took a lot from Peter Ottens reply to generate tmp then flattened the
inner lists.

After a bit more thought, the intermediate calculation of tmp can be
removed with a
little loss in clarity though, to give:

>>> answer = [ val for val in set(ref) for x in range(min(lst.count(val), 
>>> ref.count(val)))]
>>> answer
[2, 2, 4]



- Cheers,  Paddy.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to