2017-02-07 1 views
4

Chocolate and Milky - это условия (в эксперименте) и 'yes' или 'no' были ли они ответом на каждое испытание.Проценты в словарях?

Хотелось бы рассчитать процент от 'yes' в молочном состоянии (2/5 * 100) и состояние шоколада, но я не уверен, как это сделать.

+3

Easy. Получите количество ответов «да», разделите их на общее количество ответов, умножьте их на 100. – byxor

+0

Это то, что я пытался сделать, но код, похоже, не работает. У вас есть код для этого? – Anonypy

+1

@Anonypy: Какой у вас код, который, похоже, не работает? – jwodder

ответ

6

Я хотел бы создать процент функции:

def percentage(of, in_): 
    return in_.count(of) * 100/len(in_) 

, а затем применить это в словаре понимания:

>>> dct = {'Milky': ['yes', 'no', 'no', 'yes', 'no'], 
...  'Chocolate': ['yes', 'no', 'yes', 'yes', 'no']} 
>>> 
>>> {key: percentage('yes', values) for key, values in dct.items()} 
{'Chocolate': 60.0, 'Milky': 40.0} 
+0

Спасибо! Тем не менее, я имею целью получить процент шоколада и процентное содержание молочного в двух отдельных переменных. Это возможно? – Anonypy

+0

просто сохраните результат в переменной: 'result = {key: percent (value, 'yes') для ключа, value в dct.items()}' и чтобы получить доступ к данным 'result ['Milky']' или 'результат [ 'Chocolate'] '. – MSeifert

+1

Nitpick: Я бы переименовал 'inp' и' search'. Непонятно, каковы они. – byxor