亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何參考python中的字典在列表中找到最高值的元素

如何參考python中的字典在列表中找到最高值的元素

白衣染霜花 2023-03-01 15:39:29
我如何在 python 中編寫一個函數,它可以:遍歷可能包含重復單詞并引用字典的單詞字符串列表,找到絕對和最高的詞,然后將其與相應的絕對值一起輸出。該函數還必須忽略字典中沒有的單詞。例如,假設函數被調用H_abs_W()。給定以下列表和字典:list_1 = ['apples','oranges','pears','apples']  Dict_1 = {'apples':5.23,'pears':-7.62}然后將函數調用為:H_abs_W(list_1,Dict_1)應該給出輸出:'蘋果',10.46編輯:最后我設法用下面的代碼做到了。查看答案,原來我可以用更短的方式完成它,大聲笑。def H_abs_W(list_1,Dict_1):        freqW = {}    for char in list_1:        if char in freqW:            freqW[char] += 1        else:            freqW[char] = 1    ASum_W = 0    i_word = ''    for a,b in freqW.items():            x = 0            d = Dict_1.get(a,0)            x = abs(float(b)*float(d))            if x > ASum_W:                ASum_W = x                i_word = a           return(i_word,ASum_W)
查看完整描述

3 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

嘗試這個,


key, value = sorted(Dict_1.items(), key = lambda x : x[1], reverse=True)[0]


print(f"{key}, {list_1.count(key) * value}")


# apples, 10.46


查看完整回答
反對 回復 2023-03-01
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

您可以使用它Counter來計算列表中每個項目的頻率(出現次數)。


max(counter.values())會給我們最大出現元素的計數

max(counter, key=counter.get)將給出列表中的哪個項目與最高計數相關聯。

========================================================================


from collections import Counter



def H_abs_W(list_1, Dict_1):

    counter = Counter(list_1)

    count = max(counter.values())

    item = max(counter, key=counter.get)

    return item, abs(count * Dict_1.get(item))


查看完整回答
反對 回復 2023-03-01
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

list_1 = ['apples','oranges','pears','apples'] 

Dict_1 = {'apples':5.23,'pears':-7.62}


d = {k:0 for k in list_1}

for x in list_1:

    if x in Dict_1.keys():

        d[x]+=Dict_1[x]

        

m = max(Dict_1, key=Dict_1.get)

print(m,Dict_1[m])


查看完整回答
反對 回復 2023-03-01
  • 3 回答
  • 0 關注
  • 174 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號