Is Python Smart Enough to do Sorting like this?
shalen_itbhu at hotmail.com
Sat Mar 13 05:25:32 CET 2004
Thanks. I got what you said and by mistake I had typed the order in
Decreasing, which I needed too.
However, right now I see this interesting problem here on this list of "dont
bother" which seems interesting.
If one has a string and can this string be assigned to a dictionary and then
we can apply the sorting methods of dictionary on it.
For example: the information in my itemset can be treated as a string.
itemset=str(key[i])+str(value[i]) #done over a loop and and then some how
can get everything concatenated
If I am not mistaken the itemset is now a string.
How can I assign this itemset back to a dictionary? Is there any way?
If yes! then we can apply the sort methods for increasing order and for
decreasing order you have given me the function already.
Please clear my doubt
>From: Stephen Horne <steve at ninereeds.fsnet.co.uk>
>To: python-list at python.org
>Subject: Re: Is Python Smart Enough to do Sorting like this?
>Date: Sat, 13 Mar 2004 04:03:30 +0000
>On Sat, 13 Mar 2004 01:26:25 +0000, "shalendra chhabra"
><shalen_itbhu at hotmail.com> wrote:
> >Is it possible to order this itemset in an increasing order of key: value
> >with respect to keys. For example: if
> >then the resulting ordering should be in such a way:
> >key4:value4, key2: value2,key3:value3>key1: value1
>What you seem to be describing is decreasing order of key - the
>highest key value (key4) first, with progressively smaller values at
>This is not hard. The only minor annoyance is that, unlike for
>instance a C++ map, Python dictionaries don't naturally iterate in
>sorted order (they use hashing rather than a tree structure, which
>overall is probably neither better nor worse - just different).
>Sorting tasks are quite common, so while that are not exactly
>difficult I imagine there's a good guide on the internet somewhere for
>newbies (links anyone?).
>In this case, once you have the dictionary of key:value pairs you
>extract a list of keys and sort it appropriately. The default sort is
>in increasing order, so you reverse that to get decreasing order.
>Then, if necessary, you use a list comprehension to get a list of
>(key, value) tuples in the needed order. The list comprehension is
>often redundant, though, as you can normally just iterate the sorted
>keys and read the values from the dictionary when they're needed.
>Here is a quick function...
>def pairs_by_decreasing_key (p_Dict) :
> Takes a dictionary and derives a list of (key, value) tuples
> in decreasing order of key.
> tmp = p_Dict.keys (); tmp.sort (); tmp.reverse ()
> return [(i, p_Dict [i]) for i in tmp]
>steve at ninereeds dot fsnet dot co dot uk
Xerox Multifunction devices that print,copy,scan and fax.
http://go.msnserver.com/IN/44797.asp Get affordable printing solutions that
fit your needs .
More information about the Python-list