python語法之通過value找key問題
更新時(shí)間:2022年11月15日 09:12:01 作者:日日記
這篇文章主要介紹了python語法之通過value找key問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
python通過value找key
方法一
raw_dict={'domain_id': '$domain_id', 'enabled': '$enabled', 'name': '$username'}
?
key_list = list(filter(lambda k: raw_dict.get(k) == "$domain_id", raw_dict.keys()))
print(key_list) # ['enabled', 'name']方法二
newdict = dict(zip(raw_dict.values(),raw_dict.keys())) #字典的反轉(zhuǎn),但是如果兩個(gè)key的value一樣,反轉(zhuǎn)后,只會(huì)保留一個(gè)key print(newdict)
解決問題
接口定義的queryparm一共有3個(gè),但是這三個(gè)參數(shù)不是非必填,測試用例需要驗(yàn)證分別傳入這每一個(gè)參數(shù)時(shí)的返回結(jié)果,所以需要api調(diào)用時(shí)對(duì)queryparm進(jìn)行移除,移除沒有傳入的parm
? ? def removeParm(self,srcInterParm,parms):
? ? ? ? #去除無用的parm
? ? ? ? pattern = re.compile(r'\$(.*?)\'')
? ? ? ? parmlist =re.findall(pattern,str(srcInterParm))#獲取到所有$parm變量名
? ? ? ? noexistParm = []
? ? ? ? for value in parmlist:#驗(yàn)證parm是否在傳參中包含
? ? ? ? ? ? if not parms.keys().__contains__(value):
? ? ? ? ? ? ? ? noexistParm.extend(list(filter(lambda k: srcInterParm.get(k) == '$'+value, srcInterParm.keys())))
? ? ? ? for key in noexistParm:
? ? ? ? ? ? srcInterParm.pop(key)
? ? ? ? return srcInterParm
?
? ? print(t.removeParm({'domain_id': '$domain_id', 'enabled': '$enabled', 'name': '$username'},{}))
#打印結(jié)果為{}python求value最大的key值
d = {"1": 9, "2": 0, "3": 7, "6": 3, "0": 4, "4": 1}
value_1 = max(d, key=d.get)
print(value_1)
value_2 = max(d,key=lambda x:d[x])
print(value_2)
value_3 =sorted(d,key=lambda x:d[x])[-1]
print(value_3)以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python機(jī)器學(xué)習(xí)庫scikit-learn使用詳解
scikit-learn是Python中最流行的機(jī)器學(xué)習(xí)庫之一,它提供了各種各樣的機(jī)器學(xué)習(xí)算法和工具,包括分類、回歸、聚類、降維等2023-03-03
python數(shù)據(jù)結(jié)構(gòu)之線性表的順序存儲(chǔ)結(jié)構(gòu)
這篇文章主要為大家詳細(xì)介紹了python數(shù)據(jù)結(jié)構(gòu)之線性表的順序存儲(chǔ)結(jié)構(gòu),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09

