Python字典遍历与排序实现详解

Elena
Elena
发布时间:2026-10-13| 3人浏览过
原创

本文详细介绍Python中字典的多种遍历方式,包括items()与iteritems()的区别,以及利用zip()合并序列。重点讲解如何使用sorted函数结合lambda表达式对字典按键或键值进行升序和降序排序,并提供完整代码示例与参数说明。

本文通过具体示例,详细解析Python中字典的遍历与排序实现方法,供读者参考学习。

关于字典的遍历操作:

首先需要了解以下基础方法:

方法(items()):

主要功能是将字典的键值对以列表形式返回。

示例如下:

dict_={"a":2,"b":3,"c":6}
dict_.items()
>>>[('a',2),('b',3),('c',6)]

方法(iteritems()):

其主要功能是返回一个包含字典键值对的迭代器对象。

# -*- coding: cp936 -*-
dict1={'a':1,'b':2,'c':3}
#第一种:
for d in dict1:
  print "%s:%d"%(d,dict1[d])
print
#第二种:
for k,v in dict1.items():
  print "%s:%d"%(k,v)
print
#第三种:
for k,v in dict1.iteritems():
  print "%s:%d"%(k,v)
print
#第四种:
for k in dict1.iterkeys():
  print "%s:%d"%(k,dict1[k])
print
#第五种:
for v in dict1.itervalues():
  print v
print
#第六种:
for k,v in zip(dict1.iterkeys(),dict1.itervalues()):
  print "%s:%d"%(k,v)
print

函数zip()(zip())能够将多个列表合并,并生成一个由元组组成的列表。

示例如下:

list1=[1,2,3]
list2=[4,5,6]
zip(a,b)
>>>[(1,4),(2,5),(3,6)]

函数zip()(zip())的参数可以是任意类型的序列,且支持两个以上参数。当传入参数的长度不一致时,zip函数会以最短序列的长度为准进行截取,最终返回元组。

接下来介绍字典的排序方法:

首先介绍核心函数:

函数sorted(dic,value,reverse)(sorted(dic, value, reverse))

执行过程为:将第一个参数传递给第二个参数“键-键值”,随后从该参数中取出键[0]或键值[1]。

其中dic为比较函数,value为排序对象(可以是键或者键值)。

参数reverse用于指定排序顺序,值为True表示降序,值为False表示升序(此为默认值)。

示例:按字典的键值进行排序(若将dict[1]替换为dict[0],则变为按字典的键排序)。

sorted(dict.iteritems(),key=lambda dict:dict[1],reverse=True)

具体解释说明:

函数dict.iteritems()(dict.iteritems())返回包含[(键,键值),(键,键值)...]的列表。随后使用sorted方法,通过key参数指定排序依据为键值,即取第一个元素d[1]的值进行排序。设置reverse=True表示需要翻转结果(即执行降序排序),默认情况下为升序排序。

此外,还可以结合函数lambda与函数iteritems()(iteritems())使用。

关于lambda:

其主要功能是创建匿名函数。

示例如下:

fun_1=lambda a:a+1
print fun_1(1)
>>>2
fun_2=lambda a,b:a+2*b
fun_2(1,1)
>>>3

函数(iteritems()):

功能:以迭代器对象的形式返回字典的键值对。

# -*- coding: cp936 -*-
print "按字典键值进行排序"
dict1={'a':3,'c':1,'b':2}
#升序:
dict_a=sorted(dict1.iteritems(),key=lambda dict1:dict1[1],reverse=False) 
#降序排序reverse=True ,该参数可省,默认为False。 或者dict_a.reverse()
print dict_a,"\n"
#降序:
dict2={'a':3,'c':1,'b':2}
dict_b=sorted(dict2.iteritems(),key=lambda dict2:dict2[1],reverse=True)
print dict_b,"\n"
##############################################################
print "按字典键进行排序"
dict3={'d':6,'e':5,'f':4}
#降序:
dict_c=sorted(dict3.iteritems(),key=lambda dict3:dict3[0],reverse=True) 
#降序排序reverse=True ,该参数可省,默认为False。 或者dict_a.reverse()
print dict_c,"\n" 
#升序:
dict4={'d':6,'e':5,'f':4}
dict_d=sorted(dict4.iteritems(),key=lambda dict4:dict4[0])#改为降序与上面同理
print dict_d,"\n"

补充推荐:此处为大家提供一款排序演示工具,供参考使用:

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具: http://tools.jb51.net/aideddesign/paixu_ys

对Python其他内容感兴趣的读者,可进一步查阅本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》以及《Python入门与进阶经典教程》。

希望本文所述内容能对大家的Python程序设计有所帮助。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。