Python文章

python字典根据值value返回键key 2020-0

2020-03-24  本文已影响0人  O少O

#python字典根据值value返回键key        ——by ospwin    2020-03-24

#思路:将字典的key和value分别转为key列表和value列表,根据value列表的元素索引值找出对应key列表的值。

dt={"neutral":0,"sadness":0,"disgust":0,"anger":0,"surprise":99.999,"fear":0,"happiness":0}    #创建dt字典

print(dt)

dt_val_list=list(dt.values())  #字典的值转为列表,这条才正确

print(dt_val_list)

val_max=max(dt_val_list)

dt_val_index=dt_val_list.index(val_max)    #列表的方法index()获得列表元素的索引号

print('列表dt_val_list最大值的序列是:',dt_val_index)

dt_key_list=list(dt.keys())  #字典中的key转换为列表,这条才正确

print(dt_key_list)

dt_key=dt_key_list[dt_val_index]    #根据索引号取得key列表的元素(对应字典的key)

print('字典value的索引值对应的字典key:',dt_key)

程序代码输出结果

##思考:如果是字典的值value有相同的,如何取得对应的字典的键key呢?


#以下方法很简练很好摘录自:Python中按值来获取指定的键_python_脚本之家https://www.jb51.net/article/157266.htm

#Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可以是1001。id同样可以是1001。这样的话通过值来获取指定的键,就不止一个!而且也并不太好处理。这里同样提供两种思路来处理。

#方法一:

dct = {'Name': 'Alice', 'Age': 18, 'uid': 1001, 'id': 1001}

def get_key1(dct, value):

    return list(filter(lambda k:dct[k] == value, dct))

get_key1_var=get_key1(dct, 1001)

print(get_key1_var)

程序代码输出结果

#方法二:

dct= {'Name': 'Alice', 'Age': 18, 'uid': 1001, 'id': 1001}

def get_key2(dct, value):

    return [k for (k,v) in dct.items() if v == value]

get_key2_var=get_key2(dct, 1001)

print(get_key2_var)

get_key2_var=get_key2(dct, 1000)

print(get_key2_var)

程序代码输出结果

#上面的两种方法可以很方便高效的来处理字典中按值来找键的问题!

上一篇 下一篇

猜你喜欢

热点阅读