我想重命名字典的键是整数,我需要它们与前导零的整数,以便它们正确排序。重命名字典中的键
例如我的钥匙是这样的:
'1','101','11'
,我需要他们:
'001','101','011'
这是林现在正在做的,但我知道有一个更好的办法
tmpDict = {}
for oldKey in aDict:
tmpDict['%04d'%int(oldKey)] = aDict[oldKey]
newDict = tmpDict
我想重命名字典的键是整数,我需要它们与前导零的整数,以便它们正确排序。重命名字典中的键
例如我的钥匙是这样的:
'1','101','11'
,我需要他们:
'001','101','011'
这是林现在正在做的,但我知道有一个更好的办法
tmpDict = {}
for oldKey in aDict:
tmpDict['%04d'%int(oldKey)] = aDict[oldKey]
newDict = tmpDict
你会了解它的错误的方式。如果你想以分类的方式从字典中提取条目,那么你需要在提取时进行排序。
for k in sorted(D, key=int):
print '%s: %r' % (k, D[k])
aDict = dict((('%04d' % oldKey, oldValue) \
for (oldKey, oldValue) in aDict.iteritems()))
...或%03d
i如果你的例子中你需要三位数字。
你可以用你想要的任何键进行排序。
因此,举例来说:sorted(mydict, key=int)
我很困惑。为什么数字排序不能对键进行排序?字典保证没有按键的排序顺序,所以更改密钥。 – Alan 2010-06-14 20:38:50
为什么不将它们转换为数字? (如果需要,你甚至可以将它们显示为二进制) – Mark 2010-06-14 20:41:07