广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中字典的排序(Ordered
  • 524
分享到

python中字典的排序(Ordered

字典pythonOrdered 2023-01-31 06:01:48 524人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1 首先介绍一下 sorted() 函数:输入代码:print(help(sorted)), 查看函数用法 输出为:Help on built-in function sorted in module builtins:sorted(ite


1 首先介绍一下 sorted() 函数:

输入代码:print(help(sorted)), 查看函数用法 

输出为:


Help on built-in function sorted in module builtins:


sorted(iterable, key=None, reverse=False)

    Return a new list containing all items from the iterable in ascending order.


    A custom key function can be supplied to customize the sort order, and the

    reverse flag can be set to request the result in descending order.


None


sorted(iterable, key=None, reverse=False) , 返回一个有序的列表


iterable , 一个可以迭代的对象

key , 用来比较的对象,可以省略

reverse , 指定是否颠倒,即是否逆序,默认是正序, 可以省略

2 使用 sorted 对字典排序,注意字典的键key值都是同类型的

test = {1: "a", 3: "d", 6: "g", 2: "c", 5: "e", 0: "f", 4: 'b'}


# 对字典的key值列表排序,返回列表

print(sorted(test.keys()))


# 对字典的键值对元组列表排序,按元组的第1个元素排序,也就是 key

# 返回的是一个元组列表

print(sorted(test.items(), key=lambda obj: obj[0]))


# 对字典的键值对元组列表排序,按元组的第2个元素排序,也就是 value

# 返回的是一个元组列表

print(sorted(test.items(), key=lambda obj: obj[1]))


输出结果为:


[0, 1, 2, 3, 4, 5, 6]

[(0, 'f'), (1, 'a'), (2, 'c'), (3, 'd'), (4, 'b'), (5, 'e'), (6, 'g')]

[(1, 'a'), (4, 'b'), (2, 'c'), (3, 'd'), (5, 'e'), (0, 'f'), (6, 'g')]


如果要反序,添加 reverse=True 即可, 如:sorted(test.keys(), reverse=True)


3 使用 OrderedDict 对字典排序

from collections import OrderedDict


test = {1: "a", 3: "d", 6: "g", 2: "c", 5: "e", 0: "f", 4: 'b'}


# 普通 dict 插入元素时是无序的,使用 OrderedDict 按元素插入顺序排序

# 对字典按key排序, 默认升序, 返回 OrderedDict

def sort_key(old_dict, reverse=False):

    """对字典按key排序, 默认升序, 不修改原先字典"""

    # 先获得排序后的key列表

    keys = sorted(old_dict.keys(), reverse=reverse)

    # 创建一个新的空字典

    new_dict = OrderedDict()

    # 遍历 key 列表

    for key in keys:

        new_dict[key] = old_dict[key]

    return new_dict



# 对字典按 value 排序,默认升序, 返回 OrderedDict

def sort_value(old_dict, reverse=False):

    """对字典按 value 排序, 默认升序, 不修改原先字典"""

    # 获取按 value 排序后的元组列表

    items = sorted(old_dict.items(), key=lambda obj: obj[1], reverse=reverse)

    # 创建一个新的空字典

    new_dict = OrderedDict()

    # 遍历 items 列表

    for item in items:

        # item[0] 存的是 key 值

        new_dict[item[0]] = old_dict[item[0]]

    return new_dict


print(sort_key(c))

print(sort_value(c))


输出结果为:


OrderedDict([(0, 'f'), (1, 'a'), (2, 'c'), (3, 'd'), (4, 'b'), (5, 'e'), (6, 'g')])

OrderedDict([(1, 'a'), (4, 'b'), (2, 'c'), (3, 'd'), (5, 'e'), (0, 'f'), (6, 'g')])


使用 OrderedDict 可以保证元素按插入顺序排序,如果修改上面函数:


# 创建一个新的空字典

new_dict = {}


这样创建的就是一个普通字典,虽然之前已经对key或value排好序了,但是插入的时候还是无序的,所以没作用。


简化使用 OrderedDict :


from collections import OrderedDict


test = {1: "a", 3: "d", 6: "g", 2: "c", 5: "e", 0: "f", 4: 'b'}


print(OrderedDict(sorted(test.items(), key=lambda obj: obj[0])))

print(OrderedDict(sorted(test.items(), key=lambda obj: obj[1])))


输出结果还是和之前一样:


OrderedDict([(0, 'f'), (1, 'a'), (2, 'c'), (3, 'd'), (4, 'b'), (5, 'e'), (6, 'g')])

OrderedDict([(1, 'a'), (4, 'b'), (2, 'c'), (3, 'd'), (5, 'e'), (0, 'f'), (6, 'g')])


--结束END--

本文标题: python中字典的排序(Ordered

本文链接: https://www.lsjlt.com/news/190688.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中字典的排序(Ordered
    1 首先介绍一下 sorted() 函数:输入代码:print(help(sorted)), 查看函数用法 输出为:Help on built-in function sorted in module builtins:sorted(ite...
    99+
    2023-01-31
    字典 python Ordered
  • 如何排序Python字典
    这篇文章主要介绍“如何排序Python字典”,在日常操作中,相信很多人在如何排序Python字典问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何排序Python字典”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-15
  • python 编程中字典排序的方法
    在python编写程序的过程中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的。因此,为了使统计得到的结果更方便查看需要进行排序。Python中字典的排序分为按“键”排序和按“值”排序。 1.按“值”排序就...
    99+
    2023-01-31
    字典 方法 python
  • Python怎么对字典排序
    Python中可以使用`sorted()`函数对字典进行排序。字典是无序的,它的键(key)是无序的,因此对字典进行排序时,实际上是...
    99+
    2023-09-13
    python
  • python中怎么实现字典排序
    python中怎么实现字典排序,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。<lo:  ="" j="lo&quo...
    99+
    2023-06-04
  • python字典排序浅析介绍
    目录1.语法规则1-1 代码实例1-2 参数说明2.对字典排序2-1 简单示例2-2 说明2-3 复杂示例2-4 说明1.语法规则 1-1 代码实例 sorted(iterable,...
    99+
    2022-11-11
  • python字典排序的方法有哪些
    Python字典排序的方法有以下几种:1. 使用sorted()函数:可以使用sorted()函数对字典的键或值进行排序。例如,使用...
    99+
    2023-10-12
    python
  • python怎么对字典进行排序
    在Python中,可以使用`sorted()`函数对字典进行排序。字典本身是无序的,但可以将其转换为一个由键值对元组组成的列表,然后...
    99+
    2023-10-12
    python
  • python 字典(dict)按键和值排序
    python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序。 ...
    99+
    2022-06-04
    字典 按键 python
  • Python实现字典依据value排序
    具体内容如下: 使用sorted将字典按照其value大小排序 >>> record = {'a':89, 'b':86, 'c':99, 'd':100} >>>...
    99+
    2022-06-04
    字典 Python
  • python字典如何按值的大小排序
    要按照字典的值进行排序,可以使用sorted()函数和lambda函数。首先,使用sorted()函数,指定key参数为一个lamb...
    99+
    2023-10-12
    python
  • python中itemgetter函数如何实现字典排序
    这篇文章将为大家详细讲解有关python中itemgetter函数如何实现字典排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科...
    99+
    2023-06-14
  • python如何根据键对字典排序
    这篇文章主要介绍了python如何根据键对字典排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。根据键对字典排序方法一,zip函数方法二,不...
    99+
    2022-10-19
  • python中的有序字典
     字典是python开发中的一种常用的数据结构,但是它在迭代时并不是按照元素的顺序进行,可能在某些场景下无法满足我们的需求,这就引入了有序字典  OrderedDict是dict的子类,它记住了内容添加的顺序  OrderedDict在比较...
    99+
    2023-01-31
    字典 python
  • 5种Python字典“键”和“值”的排序方法
    使用 sorted() 函数 使用 sorted() 函数对字典进行排序,将其转换为元组列表,再按照指定的键或者值进行排序。 按照键排序的示例代码 d = {'apple': 4, 'banana':...
    99+
    2023-09-10
    python 信息可视化 数据挖掘
  • Python字典“键”和“值”的排序5种方法
    目录使用 sorted() 函数使用 itemgetter() 函数使用 OrderedDict 类使用 zip() 函数使用 Pandas 库使用 sorted() 函数 使用 s...
    99+
    2023-05-13
    Python字典键和值排序 Python字典排序
  • Python根据字典值对字典进行排序的三种方法实例
    目录一、实际场景及解决思路二、字典排序的三种实现方法2.1 使用列表解析方法实现字典排序2.2 使用zip方法实现字典排序2.3 使用传递sorted函数的key参数实现字典排序三、...
    99+
    2022-11-11
  • python如何通过键排序字典元素
    这篇文章将为大家详细讲解有关python如何通过键排序字典元素,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过「键」排序字典元素关于“python如何通过键排序字典元素...
    99+
    2022-10-19
  • Python使用random.shuffle()随机打乱字典排序
    示例.1 import random from random import shuffle x = [[i] for i in range(10)] shuffle(x) print...
    99+
    2022-11-11
  • Python按键或值对字典进行排序
    给定一个字典,然后按键(key)或值(value)对字典进行排序。 def dictionairy(): # 声明字典 key_value ={} ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作