[Tutor] sorting dictionary keys?

Norman Khine norman at khine.net
Tue May 13 13:58:11 CEST 2008


how about this

 >>> d = { 'a' : 1, 'd' : 2, 'b' : 3, 'c' : 0 }
 >>> for i in sorted(set(d)):
...     print "%s\t%s" % (i, d[i])
...
a       1
b       3
c       0
d       2



James Hartley wrote:
> 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 at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 


More information about the Tutor mailing list