python字典按key取值_python 对字典分别按照key值、value值进行排序

本文详细介绍Python中sorted函数的使用方法,包括如何通过iterable、key和reverse参数对字典进行排序,提供了按照key和value排序的具体示例,并展示了如何获取排序后的前n个元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.sorted函数

首先介绍sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数。

其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序(从大到小),reverse=false则是顺序(从小到大),默认是reverse=false。

2.按照key排序

要对字典按照key排序,可以直接调用sorted函数。

my_dict = {'lilee':25, 'age':24, 'phone':12}

sorted(my_dict.keys())

输出结果为

['age', 'lilee', 'phone']

直接使用sorted(my_dict.keys())就能按key值对字典排序,这里是按照顺序对key值进行排序的,如果想按照倒序排序的话,只需要将reverse置为true即可。

sorted(my_dcit.keys(), reverse = true)

3.按照value值排序

共有三种方法可以实现将字典按照value值进行排序

(1)key使用lambda匿名函数取value进行排序

d = {'lilee':25, 'wangyan':21, 'liqun':32, 'age':19}

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

输出结果为

[('age',19),('wangyan',21),('lilee',25),('liqun',32)]

如果需要倒序则

sorted(d.items(), key=lambda item:item[1], reverse=True)

得到的结果就会是

[('liqun',32),('lilee',25),('wangyan',21),('age',19)]

(2)使用operator的itemgetter进行排序

importoperator

sorted(d.items(), key=operator.itemgetter(1))

输出结果为

[('age',19),('wangyan',21),('lilee',25),('liqun',32)]

(3)将key和value分装成元组,再进行排序

f =zip(d.keys(), d.values())

c=sorted(f)

输出结果为

[('age',19),('wangyan',21),('lilee',25),('liqun',32)]

4.取出排序的前n个value值和key值

可以按照如下操作:

before ={"key1": 5,"key2": 6,"key3": 4,"key4": 3,

}#排序

after = dict(sorted(before.items(), key=lambda e: e[1]))print(after)

# 取出前几个, 也可以在sorted返回的list中取前几个

required_cnt = 2cnt=0for key, value inafter.items():

cnt+= 1

if cnt >required_cnt:break

print("{}:{}".format(key, value))

---------------------

原文:https://blog.csdn.net/laobai1015/article/details/85114570

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值