Почему словарь выдаёт не тот ключ?
В данном случае нужно так:import operator
data = {'Улан-Удэ': 65, 'Иркутск': 2, 'Шаралдай': 1, 'Санкт-Петербург': 1, 'Москва': 5, 'New York City': 1, 'Южно-Сахалинск': 1, 'Ростов-на-Дону': 1, 'Улюкчикан': 1, 'Мухоршибирь': 1, 'Masaya': 1, 'Barcelona': 1, 'Новосибирск': 1, 'Chicago': 1, 'Taoyuan': 1, 'Madrid': 1, 'München': 1, 'Ōsaka': 1, 'Киев': 1, 'Рай (деревня)': 1}

max(data.items(), key=operator.itemgetter(1))[0]
'Улан-Удэ'
но почему то он выдаёт в данном случае Южно-Сахалинск, хотя должен Улан-Удэ
С чего бы это? Строки сравниваются лексикографически: 'Южно-Сахалинск' > 'Улан-Удэ'.
Подсказка:print(ord('Ю'))
print(ord('У'))
_____________
1070
1059