重命名字典中的键

时间:2010-06-14 20:35:58

标签: python dictionary

我想重命名字典的键是int,我需要它们与前导零的整数,以便它们正确排序。

例如我的键就像:

'1','101','11'

我需要他们:

'001','101','011'

这就是我现在正在做的事情,但我知道有更好的方法

tmpDict = {}
  for oldKey in aDict:
 tmpDict['%04d'%int(oldKey)] = aDict[oldKey]
newDict = tmpDict

3 个答案:

答案 0 :(得分:7)

你的方式错了。如果要以排序的方式从dict中提取条目,则需要对提取进行排序。

for k in sorted(D, key=int):
  print '%s: %r' % (k, D[k])

答案 1 :(得分:1)

您可以使用您想要的任何键进行排序。

所以,例如:sorted(mydict, key=int)

答案 2 :(得分:0)

aDict = dict((('%04d' % oldKey, oldValue) \
             for (oldKey, oldValue) in aDict.iteritems()))

...或%03d如果你需要三个数字,如你的例子。