前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习记录07-字典排序

Python学习记录07-字典排序

作者头像
huolong
发布2023-09-07 10:31:24
1970
发布2023-09-07 10:31:24
举报
文章被收录于专栏:技术指北

本文的内容是对字典进行排序。Python 的字典中本身是无序的,没有这个说法的。 常见的我们对字典进行排序,一般有通过sorted函数,用key来排序,或者是通过value来排序,以下是示例的代码。

代码语言:javascript
复制
d1 ={}
d1['cat '] = 9
d1['dog '] = 6
d1['fish '] = 3
d1['bird '] = 1
print(sorted(d1.keys()))  #用key排序  ['bird ', 'cat ', 'dog ', 'fish ']

print(sorted(d1.items(),key=lambda item:item[1]))  #用value排序 [('bird ', 1), ('fish ', 3), ('dog ', 6), ('cat ', 9)]

当我们创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序,我们可以使用collections里的OrderedDict类,来实现。 它会按照元素被插入时候的顺序来进行排序。

代码语言:javascript
复制
d = OrderedDict()
d['cat '] = 9
d['dog '] = 6
d['fish '] = 3
d['bird '] = 1
print(d)  # OrderedDict([('cat ', 9), ('dog ', 6), ('fish ', 3), ('bird ', 1)])

构建一个将来需要序列化或编码成其他格式的映射的时候, OrderedDict 是非常有用的。 比如,你想精确控制以 JSON 编码后字段的顺序,你可以先使用 OrderedDict 来构建这样的数据。

代码语言:javascript
复制
json.dumps(d)
'{"foo": 1, "bar": 2, "spam": 3, "grok": 4}'

注意点:

1、OrderedDict 内部维护着一个根据键插入顺序排序的双向链表。每次当一个新的元素插入进来的时候, 它会被放到链表的尾部。对于一个已经存在的键的重复赋值不会改变键的顺序。 2、一个 OrderedDict 的大小是一个普通字典的两倍,因为它内部维护着另外一个链表。 所以如果你要构建一个需要大量 OrderedDict 实例的数据结构的时候。对内存资源的占用较高,请谨慎考虑

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年09月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档