Как после поиска в словаре элементов с максимальным значением, если их несколько, вывести макс или мин уже по ключам?
https://ru.stackoverflow.com/a/759495/414729
А если несколько ключей с максимальным значением, как вывести один элемент используя уже сравнения ключей (больший из них или меньший)?
dic = {}
maxk = {}
with open(r'e:\Downloads\dataset_3363_3.txt') as f:
st = f.readline().strip().split()
print(s)
for a in s:
b = a.lower()
dic[a] = st.count(b)
print(dic)
maxv = max(dic.values())
print(maxv)
for k,v in dic.items():
if v == maxv:
maxk[k] = v
print(maxk)
print(min(maxk))
пытаюсь что-то наваять, но почему-то даже количество ключей не считает (((
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
будет выведен один максимальный результат или вам надо что-то другое?
res = max([(key, start_dict[key]) for key in start_dict], key=lambda obj: obj[1])
или вам что-то иное требуется?
тогда пожалуйста уточните вопрос, можно даже с примером что есть на входе и что должно получиться на выходе
Если ваша задача:
найти элемент в словаре с максимальным значением и минимальным ключом, то это можно сделать так:
start_dict = {"A": 5, "B": 4, "D": 7, "C": 7,}
# найти максимальное значение
max_value = max(start_dict.values())
# найти элемент с максимальным значением и минимальным ключём
res = min([(key, start_dict[key]) for key in start_dict if start_dict[key] == max_value], key=lambda obj: obj[0])
print(res)
или так:
# найти максимальное значение
max_value = max(start_dict.values())
# найти элемент с максимальным значением и минимальным ключём
res = min(filter(lambda i: i[1] == max_value, start_dict.items()), key=lambda j: j[0])