Этот вопрос превосходно демонстрирует преимущества структуры данных dictionary
и то, как ваша проблема может извлечь из этого пользу.Итак, сначала мы конвертируем ваш список кортежей в словари (dict
-calls), а затем вы «комбинируете» два диктанта в соответствии с вашим требованием для получения желаемого результата.
lst1 = [('zaidan', 0.0013568521031207597),('zimmerman', 0.0013568521031207597), ('ypa', 0.004070556309362279)]
lst2 = [('zimmerman', 0.0013568521031207597), ('ypa', 0.004070556309362279), ('zaidan', 0.0013568521031207597)]
dct1 = dict(lst1)
dct2 = dict(lst2)
res = {k: v * dct2.get(k, 1) for k, v in dct1.items()}.items()
, который дает:
dict_items([('zaidan', 1.8410476297432288e-06), ('zimmerman', 1.8410476297432288e-06), ('ypa', 1.656942866768906e-05)])
А если тип данных dict_item
сбивает с толку, вы всегда можете привести его к списку ванили.
res = list(res)
print(res)
# [('zaidan', 1.8410476297432288e-06), ('zimmerman', 1.8410476297432288e-06), ('ypa', 1.656942866768906e-05)]