102.Python——字典和列表排序

liftword3个月前 (03-07)技术文章25

有时我们需要根据字典的键或值进行排序,或者当列表元素是元组时,也需要根据第几个元组的值进行排序。

一、先随机构造一个字典,长度为10,键是随机字符,值是随机整数

import random
#随机生成一个列表,用着字典的值
v=random.sample(range(100),10)

#随机生成一个列表,元素是英文字母,用着字典的键
k=random.sample(list('abcdefghijklmnopqrstuvwxyz'),10)

#两列表合并,元素为字典的键和值
kv=dict(zip(k,v))
print(kv)
#随机输出结果
{'r': 91, 'c': 12, 'z': 62, 'y': 8, 'v': 55, 'a': 25, 'i': 38, 'w': 84, 'd': 57, 'u': 19}

二、按照字典的值进行排序

#按照字典的值进行排序
v_sorted=sorted(kv.items(),key=lambda x:x[1],reverse=True)
print(v_sorted)
#排序结果
[('t', 96), ('q', 95), ('f', 68), ('g', 54), ('r', 39), ('w', 31), ('z', 22), ('d', 16), ('v', 11), ('l', 9)]

三、按照字典的键进行排序

#按照字典的键进行排序
k_sorted=sorted(kv.items(),key=lambda x:x[0])
print(k_sorted)
#排序结果
[('d', 16), ('f', 68), ('g', 54), ('l', 9), ('q', 95), ('r', 39), ('t', 96), ('v', 11), ('w', 31), ('z', 22)]

四、两列表合并,元素为字典的键和值

#字典转列表
lst=list(kv.items())
print(lst)
#转换结果
[('q', 95), ('g', 54), ('d', 16), ('t', 96), ('z', 22), ('w', 31), ('f', 68), ('r', 39), ('l', 9), ('v', 11)]

五、列表排序,根据元组的第2个元素的值

#列表排序,根据字典的值
lst.sort(key=lambda x:x[1],reverse=True)
print(lst)
#输出结果
[('t', 96), ('q', 95), ('f', 68), ('g', 54), ('r', 39), ('w', 31), ('z', 22), ('d', 16), ('v', 11), ('l', 9)]


本文主要演示字典或列表排序的一种方法。

相关文章

探索 Python 中合并两个字典的七种方法,找到最适合你的那一款!

在 Python 的世界里,字典作为一种强大的数据结构,扮演着举足轻重的角色。而合并字典,则是我们经常遇到的操作。Python 为我们提供了多种合并字典的方式,每种方式都有其独特的应用场景。探索 Py...

Python 字典合并、求和大作战,轻松搞定各路数据

在使用 Python 采集来自不同渠道的数据,很多都是以字典的形式存储。将它们合并、处理是经常使用的进本操作,在本文中,我们将介绍多种合并和求和字典的方法。合并词典是指涉及将多个词典中的键值对合并到一...

Python 字典(Dictionary):高效数据映射的强大工具

在 Python 中,字典是一种基于键值对(key-value pairs)的数据结构,能够高效地进行数据映射(data mapping)和快速查找(efficient lookup)。字典以无序(u...

Python 字典的实用技巧

Python 字典(dict)是一种可变的、无序的数据结构,以键值对的形式存储数据。字典允许我们使用唯一的键来快速访问相应的值,具有查找速度快、灵活性强等优点。在实际开发中,字典被广泛用于存储和管理数...

一文讲清Python找到与字典相关的常用函数

创建字典建立一个新字典:# A tome of elements and their symbols elements = {'Hydrogen': 'H', 'Helium': 'He', 'Lit...

Python教程:python字典zip函数用法 - 学习如何操作字典

知识星球:写代码那些事如果你有收获|欢迎|点赞|关注|转发这里会定期更新|大厂的开发|架构|方案设计这里也会更新|如何摸鱼|抓虾欢迎来到写代码那些事!在Python编程中,字典(Dictionary)...