dict turn to list at runtime unexpected!!!

telnetgmike at gmail.com telnetgmike at gmail.com
Fri Dec 5 02:37:50 EST 2014


On Friday, December 5, 2014 2:56:50 PM UTC+8, telne... at gmail.com wrote:
> Why the following code gives me errors??? And why the print statement run 2 times? I'll be appreciated your helps, thanks,
> addrnum_dict = {'a':1,'b':2}
> def orderaddrtimes():
>     global addrnum_dict
>     print type(addrnum_dict)
> 
>     addrnum_dict = sorted(addrnum_dict.iteritems(), key=lambda d:d[1], reverse = True)
>     #addrnum_dict = OrderedDict(sorted(addrnum_dict.items(), key=lambda t: t[0]))
> if __name__ == '__main__':
>     kinds = ["a","b"]
>     for tmp_kind in kinds:
>         orderaddrtimes()
> 
> ######################
> errors:
> python aaa.py 
> <type 'dict'>
> <type 'list'>
> Traceback (most recent call last):
>   File "aaa.py", line 16, in <module>
>     orderaddrtimes()
>   File "aaa.py", line 11, in orderaddrtimes
>     addrnum_dict = sorted(addrnum_dict.iteritems(), key=lambda d:d[1], reverse = True)
> AttributeError: 'list' object has no attribute 'iteritems'

https://groups.google.com/forum/#!topic/comp.lang.python/eY7jecLLO48
this man helped me find out the problem.



More information about the Python-list mailing list