dict turn to list unexpected at runtime???

telnetgmike at gmail.com telnetgmike at gmail.com
Fri Dec 5 02:01:51 EST 2014


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'


More information about the Python-list mailing list