【发布时间】:2014-05-21 21:02:23
【问题描述】:
假设我有一本这样的字典:
thedict={'1':'the','2':2,'3':'five','10':'orange'}
我想按键排序这本字典。如果我执行以下操作:
for key,value in sorted(thedict.iteritems()):
print key,value
我会得到
1 the
10 orange
2 2
3 five
因为键是字符串而不是整数。我想对它们进行排序,就好像它们是整数一样,所以条目“10,橙色”排在最后。我认为这样的事情会起作用:
for key,value in sorted(thedict.iteritems(),key=int(operator.itemgetter(0))):
print key,value
但是产生了这个错误:
TypeError: int() argument must be a string or a number, not 'operator.itemgetter'
我在这里做错了什么?谢谢!
【问题讨论】:
-
itemgetter(0)实际上是一个从.iteritems()一次传递一个项目的函数:例如itemgetter(0)('ab')将返回'a'。但是int(itemgetter(0))('ab')没有意义,对吧?
标签: python sorting dictionary