`

python字典排序

 
阅读更多

程序中的解决办法:

sorted(d.items(),key=lambda x:x[1])

 

links:

http://blog.sina.com.cn/s/blog_85f5590f0100xutc.html

 

sorted()是内建函数

help(sorted)
Help on built-in function sorted in module __builtin__:

sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项
比如此例字典的items()返回的是两项('abcd 192.168.6.3 24',2) 我们使用lambda x:x[1] 就表示按照 字典的值排序 如果字典的值为列表 ('abcd 192.168.6.3 24',[2,3,4]) 我们可以使用lambda x:x[1][1]表示按值的第二项排序即[2,3,4][1]=3 ;

reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。

links:http://blog.csdn.net/vivilorne/article/details/3911079

 

1、  准备知识:

在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对:

如:dict = {‘username’:‘password’,‘database’:‘master’},其中‘username’和‘database’是key,而‘password’和‘master’是value,可以通过d[ key ]获得对应值value的引用,但是不能通过value得到key。

对于dictionnary,需知道以下几点注意事项:

a、  dictionary 的 key 是大小写敏感的

b、  一个dictionary中不能有重复的 key

c、  d ictionary 是无序的,没有元素顺序的概念, 它们只是序偶的简单排列

 

 

2、  字典排序实现:

参见cookbook, Recipe 5.1. Sorting a Dictionary 讲述了字典排序的方法;

前面已说明d ictionary 本身没有顺序概念,但是总是在某些时候,但是我们常常需要对字典进行排序,怎么做呢?下面告诉你:

方法1: 最简单的方法, 排列元素(key/value对) 然后挑出值 字典的 items 方法,会返回一个元组的列表,其中每个元组都包含一对项目——键与对应的值 。此时排序可以 sort()方法

 

 

def   sortedDictValues1(adict):
    items = adict.items()
    items.sort()
     return   [value  for   key, value  in   items]

方法2: 使用排列键 (key) 的方式,挑出值,速度比方法1快。 字典对象的keys()方法返回字典中所有键值组成的列表,次序是随机的。需要排序时只要对返回的键值列表使用sort()方法

def   sortedDictValues1(adict):
    keys = adict.keys()
    keys.sort()
     return   [adict[key]  for   key  in   keys]

方法3: 通过映射的方法去更有效的执行最后一步

def   sortedDictValues1(adict):
    keys = adict.keys()
    keys.sort()
     return   map adict.get,keys

方法4: 对字典按键排序,用元组列表的形式返回,同时使用lambda函数来进行;

sorted (iterable [ , cmp [ , key [ , reverse ]]]
cmp和key一般使用lambda
如:
  >>> d={"ok":1,"no":2}
  对字典按键排序,用元组列表的形式返回
  >>> sorted(d.items, key=lambda d:d[0])
  [('no', 2), ('ok', 1)]
  对字典按值排序,用元组列表的形式返回
  >>> sorted(d.items, key=lambda d:d[1])
  [('ok', 1), ('no', 2)]

对字典元素的排序虽然有好多种方法,这里也没有总结全,但如果对程序效率没有太高要求,选择喜欢的用就好。

分享到:
评论

相关推荐

    python字典排序实例详解

    本文实例分析了python字典排序的方法。分享给大家供大家参考。具体如下: 1、 准备知识: 在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对: 如:dict = {‘username’:’...

    Python字典排序与取值

    前言 一个非本专业的坑货,让我帮做的一道Python题,还很无chi 的那啥希望我帮写注释,简直不... # 对传入的字典根据value排序(升序) dict_sort=sorted(stock_dict.items(),key=lambda item:item[1]) #排序后得到的di

    python字典排序的方法

    Python字典是一种无序的数据结构,它以键值对的形式存储数据。在Python 3.x中,字典的插入顺序在3.7版本以后被保证,但这并不意味着字典内部的元素可以像...在处理字典排序时,理解这些基本概念和技巧是非常重要的。

    Python OrderedDict字典排序方法详解

    很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类 OrderedDict,实现了对字典对象中元素的排序。请看下面的实例: import ...

    Python中字典对象的排序示例

    使用环境:需要先安装PyCharm(请自己百度下载安装),以及然后官网上下载Python 2.7版本,以及Python 3.7版本后,安装在自己的电脑上。 使用步骤: ...目的:帮助理解字典对象排序在Python中的具体使用。

    python-2.5.2 MSI!

    - 此版本还引入了对Python字典排序的支持,增强了正则表达式引擎,并修复了一些已知的bug。 2. **MSI安装程序**: - MSI(Microsoft Installer)是一种Windows平台上的软件安装和配置服务,能够自动处理软件安装...

    Python练习题

    "Python练习题"这个资源包含了1到11个单元的练习题目,旨在帮助学习者巩固和深化对Python基础概念的理解,特别是元组、列表、字典以及类这四个核心数据结构的运用。下面我们将详细探讨这些知识点。 **元组(Tuples)*...

    python知识搜集

    - `python字典排序.docx` 关注的是Python字典的排序,因为字典本身是无序的,但可以通过`sorted()`或`items()`方法获取排序后的键或键值对。 8. **数据结构与算法的扩展**: - `python数据结构与算法.docx` 可能...

    Python3实现对列表按元组指定列进行排序的方法分析

    本文实例讲述了Python3实现对列表按元组指定列进行排序的方法。分享给大家供大家参考,具体如下: Python版本: python3.+ 运行环境: Mac OS IDE: pycharm Python内建的排序方法 1 排序方法介绍 Python中有2个...

    详解python的sorted函数对字典按key排序和按value排序

    在Python编程语言中,字典是一种非常重要的数据结构,它以键值对的形式存储数据。...希望以上的讲解能帮助你更好地理解和使用`sorted()`函数,如果你有更多关于Python字典排序的问题,欢迎继续深入学习和实践。

    Python实现字典排序、按照list中字典的某个key排序的方法示例

    本文实例讲述了Python实现字典排序、按照list中字典的某个key排序的方法。分享给大家供大家参考,具体如下: 1.给字典按照value按照从大到小排序 排序 dict = {'a':21, 'b':5, 'c':3, 'd':54, 'e':74, 'f':0} new_...

    python编程技巧.md

    python字典排序函数sorted,字符串连接join,格式化输出format函数,包括 数字的类型,模式

    python字典序.rar

    在Python编程语言中,"字典序"是一个与字典数据结构相关的概念,尤其是在讨论排序、比较或遍历字典时。..."python字典序.docx"文档很可能会深入探讨这些主题,包括字典的实现原理、排序方法以及在不同场景下的应用。

    在Python中字典根据多项规则排序的方法

    至于描述中的内容,虽然提到了iOS开发中的手机号码验证和验证码倒计时问题,但这并不是Python字典排序的话题。如果你需要了解这部分内容,它们涉及到Objective-C的正则表达式验证和NSTimer的使用。对于手机号码的...

    python对字典进行排序实例

    本文实例讲述了python对字典进行排序的方法,是非常实用的技巧。分享给大家供大家参考。 具体实现方法如下: import itertools thekeys = ['b','a','c'] thevalues = ['bbb','aaa','cccc'] d = dict(itertools....

    在Python中字典按值排序的实现方法

    d_order=sorted(d.items(),key=lambda x:x[1],reverse=False) # 按字典集合中,每一个元组的第二个元素排列。 # x相当于字典集合中遍历出来的一个元组。 print(d_order) # 得到: [('a', 1), ('b', 2

    Python使用lambda表达式对字典排序操作示例

    ### Python使用Lambda表达式对字典排序操作详解 在Python编程中,经常需要对字典进行排序处理。本文将深入探讨如何使用`lambda`表达式来实现字典的按键排序、按值排序以及多条件排序。 #### Lambda表达式简介 ...

    python字典值排序并取出前n个key值的方法

    综上所述,本文介绍了如何对Python字典进行值排序并取出值最大的前n个键值对的方法。我们学习了字典的基本操作、`sorted()`函数、`set()`集合、`lambda`函数的使用,以及如何结合内置函数`min()`和`max()`来实现字典...

Global site tag (gtag.js) - Google Analytics