#python #python_3x
Вам даны текущие цены на акции. Вам необходимо выяснить за какие акции дают большую цену. Input: Словарь (dict), в котором ключи - это рыночный код, а значение - это цена за акцию(float) def best_stock(data): # your code here list_d= list(data.items()) list_d.sort(key=lambda i: i[1]) return data.keys[-1] assert best_stock({ 'CAC': 10.0, 'ATX': 390.2, 'WIG': 1.2 }) == 'ATX', "First Вывод должен быть 'ATX', мой вывод 'ATX': 390.2.
Ответы
Ответ 1
@Viktorov уже показал как изменить вашу функцию, чтобы она работала правильно. Я хочу показать немного более оптимальный способ - чтобы найти максимум не обязательно сортировать весь словарь: In [7]: d = {'CAC': 10.0, 'ATX': 390.2, 'WIG': 1.2} In [8]: res = max(d, key=d.get) In [9]: res Out[9]: 'ATX'Ответ 2
def best_stock(data): list_d= list(data.items()) list_d.sort(key=lambda i: i[1]) return list_d[-1][0] Вы возвращаете data.keys[-1], не понятно зачем, что и приводит к ошибке, т.к. data.keys - это сама функция, а не ее вызов(потерялись скобочки). После того, как вы отсортировали список(list_d), вам оттуда и надо взять последний элемент. Так как каждый элемент списка - это пара (валюта, значение) то надо взять первый(нулевой) элемент этой пары, по этому list_d[-1][0]
Комментариев нет:
Отправить комментарий