Как использовать объекты в Python для выполнения функции и получения ответа? - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в Python и упс.Для исследования я пытаюсь передать объекты Python, сформированные с использованием данных Excel, в функцию, получить ответы и найти минимум.Я создал объекты из данных Excel в словарь, но я не понимаю, что делать с этой функцией.

Пример: у меня есть 4 различных типа контейнеров с разными атрибутами.

Type  Investment($) Lifespan 

T1        20           10   
T2        30            25   
T3        10            7    
T4        15            8 

Словарь выглядит следующим образом.

{'T1' : {'Investment' : 20, 'Lifespan' : 10}, 'T2' : {'Investment' : 30, 'Lifespan' : 25}, 'T3' : {'Investment' : 10, 'Lifespan' : 7}, 'T4':{'Investment' : 15, 'Lifespan' : 8}}

Поэтому мне нужно рассчитать стоимость жизненного цикла каждого типа, используя заранее заданное уравнение LCC, и найти минимальный ответ (Это просто простая версия иисследование немного больше по объему).Я не понимаю, как мне нужно передать словарь объектов в функцию и получить минимум.Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Возможно, вы раньше не слышали о лямбдах, но они могут быть очень полезны здесь.

def minItem(d: dict):
    return min(d, key=lambda k: d[k]['Lifespan'])

Это позволит отсортировать словарь на основе ключа 'Lifespan' вашего подсловаря.k является ключом каждого элемента словаря (т.е. 'T1', 'T2', ...).Доступ к d[k]['Lifespan'] указывает Python найти минимум на основе этого конкретного ключа .Таким образом, он будет сравнивать d['T1']['Lifespan'], d['T2']['Lifespan'], ... для сортировки каждого элемента, находя наименьший элемент.

>>> def minItem(d: dict):
        return min(d, key=lambda k: d[k]['Lifespan'])

>>> data={'T1' : {'Investment' : 20, 'Lifespan' : 10}, 'T2' : {'Investment' : 30, 'Lifespan' : 25}, 'T3' : {'Investment' : 10, 'Lifespan' : 7}, 'T4':{'Investment' : 15, 'Lifespan' : 8}}
>>> minItem(data)
T3
>>> data[minItem(data)]
{'Investment': 10, 'Lifespan': 7}
0 голосов
/ 04 декабря 2018

Вы задаете сложный вопрос, который требует нескольких шагов.Чтобы получить минимальное значение из вашего диктанта, вы можете попробовать это, чтобы получить минимальное значение из данных продолжительности жизни.

Передайте объект словаря в функцию.

def get_min(your_dict):
    a = []
    for _T, T_data in investments.items():
        a.append(T_data.get('Lifespan'))
    return min(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...