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)]
注意,返回值是由一系列元祖组成的列表。