Python中字典小技巧

1、根据字典中的值,返回对应的键(当存在多个相同的值,只返回第一个键)

my_dict = {2:1,3:9,4:5}
index = list(my_dict.values()).index(1)
key_list = list(my_dict.keys())
print(key_list[index])

首先把字典的值取出来,随后转成list格式

在这个list中,利用index函数,找到第一个出现的位置

将字典的key也转成list格式,直接使用下标,获取对应的key

2、找到字典中最小值对应的键

my_dict={1:2,2:1,3:9,4:5}
min_key = min(my_dict.items(),key=lambda x:x[1])[0]
print(min_key)

python中的min函数可以作用到字典上,但是注意,这里要指明key,指明要找的是根据值的最小值进行返回,如果不指明,默认返回的是键的最小值的键二元组。

#方法二
dict={2:1,3:9,4:5}
min_key=min(dict,key=dict.get)
print(min_key)

该方法也可以达到相同的效果,不太懂,get是用来由键取值的,这里将get方法作为key?

3、找到字典中最大的值对应的键

原理同最小值。

#方法一
dict={2:1,3:9,4:5}
max(dict.items(),key=lambda x:x[1])[0]
#方法二
dict={2:1,3:9,4:5}
max_key=max(dict,key=dict.get)
print(max_key)

 4、由列表创建字典

使用两个list来创建一个字段,list是有顺序的,所以创建出来的字典就是一一对应的。

如果列表个数不匹配,不会报错,只会把能匹配的匹配上,其余的省略。

index=[1,2,3]
fruit = ['apple','banana','orange']
print(dict(zip(index,fruit)))
print(dict([(1,'apple'),(2,'banana'),(3,'orange')]))
{1: 'apple', 2: 'banana', 3: 'orange'}

 5、对字典进行排序(常用)

有时候需要对字典进行排序,可能要根据键进行排序,也可能要根据值进行排序,一般的方法如下:

c = {1:2,2:3,4:1}
r_key = sorted(c.items(),key=lambda d : d[0])
r_value = sorted(c.items(),key=lambda d : d[1])
print(r_key)
print(r_value)
[(1, 2), (2, 3), (4, 1)]
[(4, 1), (1, 2), (2, 3)]

注意,返回值是由一系列元祖组成的列表。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值