Как мне закодировать функцию в python, которая может:
- выполнять итерацию по списку строк слов, которые могут содержать повторяющиеся слова и ссылаться на словарь,
- find слово с наибольшей абсолютной суммой, и
- вывести его вместе с соответствующим абсолютным значением.
- Функция также должна игнорировать слова, которых нет в словаре.
Например, Предположим, функция называется H_abs_W()
. Учитывая следующий список и dict:
list_1 = ['apples','oranges','pears','apples']
Dict_1 = {'apples':5.23,'pears':-7.62}
Затем вызов функции как:
H_abs_W(list_1,Dict_1)
Должен дать результат:
'apples', 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)