重命名字典中的键
我想把一个字典里的键改名,这些键是整数,我需要它们变成带有前导零的整数,这样才能正确排序。
比如说,我的键是这样的:
'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])