首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按包含数字的键对字典进行排序

如何按包含数字的键对字典进行排序
EN

Stack Overflow用户
提问于 2021-03-03 04:13:13
回答 1查看 23关注 0票数 1

我有本字典:

代码语言:javascript
复制
dd = dd = {'start1': 'geo!-23.7338,-46.7876',
 'start2': 'geo!-23.7338,-46.7876',
 'start3': 'geo!-23.7338,-46.7876',
 'start4': 'geo!-23.7338,-46.7876',
 'start5': 'geo!-23.7338,-46.7876',
 'start6': 'geo!-23.7338,-46.7876',
 'start7': 'geo!-23.7338,-46.7876',
 'start8': 'geo!-23.7338,-46.7876',
 'start9': 'geo!-23.7338,-46.7876',
 'start10':'geo!-23.7338,-46.7876',
 'start11':'geo!-23.7338,-46.7876',
 'start12':'geo!-23.7338,-46.7876',
 'start13':'geo!-23.7338,-46.7876',
 'start0': 'geo!-23.7338,-46.7876'}

我想根据key对这个字典进行排序,这样它看起来就像:

代码语言:javascript
复制
dd =  {'start0': 'geo!-23.7338,-46.7876',
 'start1': 'geo!-23.7338,-46.7876',
 'start2': 'geo!-23.7338,-46.7876',
 'start3': 'geo!-23.7338,-46.7876',
 'start4': 'geo!-23.7338,-46.7876',
 'start5': 'geo!-23.7338,-46.7876',
 'start6': 'geo!-23.7338,-46.7876',
 'start7': 'geo!-23.7338,-46.7876',
 'start8': 'geo!-23.7338,-46.7876',
 'start9': 'geo!-23.7338,-46.7876',
 'start10':'geo!-23.7338,-46.7876',
 'start11':'geo!-23.7338,-46.7876',
 'start12':'geo!-23.7338,-46.7876',
 'start13':'geo!-23.7338,-46.7876'}

我一直在尝试使用以下代码:

代码语言:javascript
复制
import collections

dd = collections.OrderedDict(sorted(start_points.items()))
dd = dict(start_points)

但这就是我所得到的:

代码语言:javascript
复制
{'start0': 'geo!-23.7338,-46.7876',
 'start1': 'geo!-23.7338,-46.7876',
 'start10':'geo!-23.7338,-46.7876',
 'start11':'geo!-23.7338,-46.7876',
 'start12':'geo!-23.7338,-46.7876',
 'start13':'geo!-23.7338,-46.7876',
 'start2': 'geo!-23.7338,-46.7876',
 'start3': 'geo!-23.7338,-46.7876',
 'start4': 'geo!-23.7338,-46.7876',
 'start5': 'geo!-23.7338,-46.7876',
 'start6': 'geo!-23.7338,-46.7876',
 'start7': 'geo!-23.7338,-46.7876',
 'start8': 'geo!-23.7338,-46.7876',
 'start9': 'geo!-23.7338,-46.7876'}

如果有人知道如何做到这一点,我将非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-03 04:46:22

对于您的用例,以下代码应该可以完成此工作:

代码语言:javascript
复制
 dd = {'start1': 'geo!-23.7338,-46.7876',
 'start2': 'geo!-23.7277,-46.7609',
 'start3': 'geo!-23.7244,-46.7556',
 'start4': 'geo!-23.7247,-46.7546',
 'start5': 'geo!-23.7251,-46.7606',
 'start6': 'geo!-23.7234,-46.7645',
 'start7': 'geo!-23.7181,-46.7644',
 'start8': 'geo!-23.6992,-46.7691',
 'start9': 'geo!-23.7006,-46.7678',
 'start10': 'geo!-23.69,-46.768',
 'start11': 'geo!-23.6909,-46.7688',
 'start12': 'geo!-23.6885,-46.7691',
 'start13': 'geo!-23.6854,-46.7702',
 'start0': 'geo!-23.6702,-46.6954'}
 
 
import collections

dd = collections.OrderedDict(sorted(dd.items(), key=lambda x: int(x[0][5:])))
dd = dict(dd)
print(dd)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66446459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档