A quick but ugly [brain-dead :-) ]fix would be sorting keys seperately,
 
>>> for i in d.keys():
 print "%s\t%s" % (i, d[i])
 
 
a 1
c 0
b 3
d 2
>>> temp = d.keys()
>>> temp.sort()
>>> for i in temp:
 print "%s\t%s" % (i, d[i])
 
 
a 1
b 3
c 0
d 2
>>>
 
Thnx,
Mugund

--- On Tue, 5/13/08, James Hartley <[EMAIL PROTECTED]> wrote:
From: James Hartley <[EMAIL PROTECTED]>
Subject: [Tutor] sorting dictionary keys?
To: tutor@python.org
Date: Tuesday, May 13, 2008, 11:06 AM

I suspect this is a brain-dead question...

Given the following code, output is as expected:

$ cat test.py
d = { 'a' : 1, 'd' : 2, 'b' : 3, 'c' : 0 }

for i in d.keys():
    print "%s\t%s" % (i, d[i])
$ python test.py
a       1
c       0
b       3
d       2
$

But if the keys are sorted, I get an error:
$ cat test1.py
d = { 'a' : 1, 'd' : 2, 'b' : 3, 'c' : 0 }

for i in d.keys().sort():
    print "%s\t%s" % (i, d[i])
$ python test1.py
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    for i in d.keys().sort():
TypeError: 'NoneType' object is not iterable
$

What is the correct manner to iterate through sorted dictionary keys?

Thanks.

Jim
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to