`
dreamstone
  • 浏览: 288483 次
  • 来自: ...
文章分类
社区版块
存档分类

Python 中dict的有序输出(排序)

阅读更多

Python中很长用的数据结构是dict,在使用的过程中总会遇到这样的问题:你想有序的遍历一个dict

需求一,无序遍历dict中的内容,实现方式如下:

 1 # !/ usr / local / bin / python
 2 MAP_TEST  =   {
 3              ' a ' : ' aa ' ,
 4              ' b ' : ' bb ' ,
 5              ' c ' : ' cc ' ,           
 6              ' d ' : ' dd ' ,
 7 }

 8 def main():
 9     for  i in MAP_TEST.keys():
10       print i + " : " + MAP_TEST[i]
11
12 if  __name__  ==   ' __main__ ' :
13     main()
14

 

需求二,有序遍历dict中的内容,但dict是无序的,所以要实现只能用list过渡

 1 # !/ usr / local / bin / python
 2 MAP_TEST  =   {
 3              ' a ' : ' aa ' ,
 4              ' b ' : ' bb ' ,
 5              ' c ' : ' cc ' ,           
 6              ' d ' : ' dd ' ,
 7 }

 8 def main():
 9  items  =  MAP_TEST.keys()
10  items.sort();
11      for  i in items:
12        print i + " : " + MAP_TEST[i]
13
14 if  __name__  ==   ' __main__ ' :
15     main()
16     
17
18

需求三,按照自定义的顺序排列,实现如下,在sortfunc中实现你自己的排序方法
本例实现了倒序排列

 1 # !/ usr / local / bin / python
 2 MAP_TEST  =   {
 3              ' a ' : ' aa ' ,
 4              ' b ' : ' bb ' ,
 5              ' c ' : ' cc ' ,           
 6              ' d ' : ' dd ' ,
 7 }

 8 def sortfunc(x,y):
 9        return  cmp(y,x);
10    
11 def main():
12    items  =  MAP_TEST.keys()
13    items.sort(sortfunc);
14     for  i in items:
15       print i + " : " + MAP_TEST[i]
16
17 if  __name__  ==   ' __main__ ' :
18     main()
19
20


说明:
在不通过版本的python中dict的默认顺序是不同的,编码时,特别是修改或者二次开发的时候,
应注意这个情况。可能会造成bug
例如一下四个字段,在1.5  2.2.3   2.4.3中排序不同,分别如下
1.5:
edifact
flat-encoded
vessel
flat-decoded

2.2.3:
flat-decoded
vessel
flat-encoded
edifact

Python 2.4.3
edifact
flat-decoded
flat-encoded
vessel

分享到:
评论

相关推荐

    Python-Python排序容器类型SortedListSortedDict和SortedSet

    SortedList是Python中的一个有序列表,它扩展了Python的内置list类型,提供了额外的排序功能。SortedList会自动保持其元素的排序状态,无论是插入新元素还是删除现有元素,它都会立即进行调整。这在需要频繁地对列表...

    python-sortedcontainers:Python排序的容器类型:排序的列表,排序的Dict和排序的集合

    在Python中,标准`dict`的键是无序的,但`SortedDict`的键则按照插入顺序或自定义比较函数进行排序。这在需要查看或遍历字典时按特定顺序进行时非常有用。`SortedDict`同样支持标准字典的所有操作,如`keys()`, `...

    65.Python之遍历dict共2页.pdf.zip

    本文将深入探讨Python中遍历字典的方法,以帮助您更好地理解和应用这一关键概念。 在Python中,字典由键值对组成,键是唯一的,而值可以重复。遍历字典通常涉及两种主要方式:遍历键和遍历键值对。以下是对这两种...

    python3实用编程技巧进阶(1套课程)\第2章2-6PYTHON 如何让字典保持有序 Python课程

    通过本课程的学习,你将掌握如何在不同Python版本中创建和操作有序字典,以及在实际编程中如何选择合适的数据结构来保持字典的顺序。无论是为了代码的可预测性还是优化性能,理解并熟练运用这些技巧都将对你的Python...

    python对字典进行排序(csdn)————程序.pdf

    在这个例子中,`sorted(my_dict.keys())`返回一个按照键排序的列表,然后我们遍历这个列表,打印出键和对应的值。值得注意的是,`sorted(my_dict)`同样有效,因为它会返回一个按照键排序的键列表。 如果你想得到一...

    Python库 | ldict-3.211017.13-py3-none-any.whl

    Python标准字典是无序的,但ldict可以保持插入顺序或者根据键或值进行排序,这在需要保持字典顺序的场景下非常有用,比如生成有序的JSON输出。 ldict还提供了一些独特的功能,如链式操作和分片操作。链式操作允许你...

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

    在Python中,字典的键是唯一的,而排序通常指的是对这些键进行排序。我们可以直接使用`sorted()`函数结合字典的`keys()`方法来实现这一目标。以下是一个基本示例: ```python d = {'apple': 3, 'banana': 1, '...

    python深度学习:python基础

    输出语句是 Python 中的一种基本语句,用于输出结果。输出语句包括 print() 函数和 input() 函数。print() 函数用于输出结果,input() 函数用于输入数据。 二、基本变量类型 2.1 字符串 字符串是 Python 中的一种...

    python 字典(dict)按键和值排序

    在Python编程语言中,字典(dict)是一种非常重要的数据结构,它以键值对的形式存储数据,其中每个键(key)唯一对应一个值(value)。由于字典本身是无序的,这意味着我们不能直接通过索引来访问或排序字典中的元素...

    python通过对字典的排序,对json字段进行排序的实例

    在Python中,对类似的JSON对象列表进行排序可以使用`sorted()`函数配合自定义的比较函数,如下所示: ```python arr2 = [ {"name": "kitty", "age": 12}, {"name": "sonny", "age": 9}, {"name": "jake", "age":...

    python基础运用-插入图片到excel中

    Python 提供了多种数据类型转换函数,例如 int()、float()、str()、tuple()、list()、set()、dict() 等。 列表 列表是 Python 中最常用的数据结构之一。列表可以存储多种类型的数据,包括数字、字符串、列表等。...

    Python库 | sortedcollections-2.0.1.tar.gz

    在Python的标准库中,虽然有`sorted()`函数和`list.sort()`方法可以对列表进行排序,但`sortedcollections`库提供了更高效且方便的数据结构,如SortedDict、SortedList和SortedSet,它们在内部保持元素的排序状态,...

    python中字典按键或键值排序的实现代码

    另外,Python 3.7及以上版本中的字典已经保持了插入顺序,虽然在Python 3.6中已经通过CPython的实现实现了这一特性,但在使用时仍需注意Python版本和字典的特性,以便正确地进行排序操作。 总之,掌握Python字典的...

    python字典序.rar

    此外,Python的`dict`类还有一个`update()`方法,它允许合并两个字典,并保持合并后的字典有序(在Python 3.7+中)。 在实际应用中,字典序的概念可能涉及到序列化(如JSON或pickle),因为这些格式通常要求键的...

    python练习题-答案.doc

    在 Python 中,sorted 函数可以用来对列表进行排序,并且可以使用 key 参数来指定排序的关键字。 23. 已知列表对象 x = ['11', '2', '3'],则表达式 max(x) 的值为 '3'。 在 Python 中,max 函数可以用来获取列表...

    (八)python3 只需3小时带你轻松入门——List 与 dict 的常用操作

    在Python3中,List和Dict是两种非常重要的数据结构,它们在编程中有着广泛的应用。List是有序的集合,可以存储任意类型的元素;而Dict则是无序的键值对集合,通过键来访问对应的值。 **List的基本操作** 1. **定义...

    python 对字典按照value进行排序的方法

    在Python编程语言中,字典(Dictionary)是一种无序的数据结构,它以键值对的形式存储数据。然而,有时我们可能需要对字典按照值(value)进行排序,以便进行数据分析或展示。本文将详细介绍三种不同的方法来实现这...

    python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)

    2. **JSON数组**(值的有序集合):对应Python中的**列表**。 3. **JSON字符串**:对应Python中的**字符串**。 4. **JSON数字**(整数或浮点数):对应Python中的**int**或**float**。 5. **JSON布尔值**:对应...

Global site tag (gtag.js) - Google Analytics