重命名字典中的键

3 投票
3 回答
2878 浏览
提问于 2025-04-15 23:58

我想把一个字典里的键改名,这些键是整数,我需要它们变成带有前导零的整数,这样才能正确排序。

比如说,我的键是这样的:

'1','101','11'

我需要它们变成:

'001','101','011'

我现在的做法是这样的,但我知道还有更好的方法。

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

3 个回答

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

...或者使用 %03d,如果你需要像你例子中那样显示三位数字的话。

1

你可以用任何你想要的方式来排序。

比如说:sorted(mydict, key=int) 这段代码就是一个例子。

7

你这样做是不对的。如果你想要从字典中提取条目并且让它们是有序的,那你需要在提取的时候进行排序。

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

撰写回答