Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

Как вернуть только ключ , без значения

#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]

Комментариев нет:

Отправить комментарий