【发布时间】:2016-01-29 09:34:14
【问题描述】:
我有一个dict,就像这样:
IdSet = {
u'abcd_def_99': [u'Scenario: forth Scenario'],
u'abcd_def_10': [u'Scenario: eleventh Scenario'],
u'abcd_def_100': [u'Scenario: second Scenario'],
u'abcd_def_101': [u'Scenario: ninth Scenario'],
u'abcd_def_46': [u'Scenario: tenth Scenario', u'Scenario: third Scenario', u'Scenario: fifth Scenario'],
}
我想仅按数字(数字)升序重新组合列表(但仍保留整个 referenceId 和值):
10
46
99
100
101
问题是,sorted(IdSet) 没有按照我想要的顺序组装,但是像这样:
10
100
101
46
99
sorted 方法没有按我想要的方式工作,所以我的代码一定是有问题的。我确实考虑过过滤掉数字,然后排序,如下所示:
for i, item in enumerate(IdSet.items()):
item_holder = item[0]
m = re.search(r'\d+$', item_holder).group()
基本上我想写的是:
for key in dict:
convert string to its numerical value
then sort key in ascending order, keeping the values
有人知道如何解决这个问题吗?
【问题讨论】:
标签: python string dictionary digits sorted