2016-10-02 3 views
0

Мне нужно сделать функцию, которая вычисляет нижний процент для значения в списке. Например, на 70,5% меньше, чем элементы val в списке. Код неполна:Функция, которая вычисляет процент в списке

from collections import Counter 

l = [1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 10] 
p = [(i, Counter(l)[i]/float(len(l)) * 100.0) for i in Counter(l)] 
l.sort() 
newList = l[int(len(l) * .70)] 

print newList, p 

У меня есть 70%, но мне нужно сделать это в функции со значением, я использую Python 2.7

+1

пожалуйста, вы можете уточнить ваш вопрос. Какую переменную необходимо изменить здесь? – WildCard

+1

_ "там на 70,5% меньше, чем элементы val в списке" _ - Я вас не понимаю. Не могли бы вы объяснить немного больше? Я предполагаю, что «val» является переменной, но я не вижу нигде. –

+0

Мне нужно сделать функцию, которая работает со всем написанным кодом. Например, def percent (value): весь код написан и напечатан. Я думаю, что мне не удалось бы только – NyxHero

ответ

0

Если вам нужен процент элементов в списке, которые являются менее чем вход, вы можете отсортировать список, получить количество элементов до первого вхождения числа, разделить его на общее количество элементов и умножить на 100. Как так:

list = [23, 22, 3, 4, 5, 11, 23, 2, 3, 3, 3, 3, 4] 
sorted_li = sorted(li) 
val = int(input()) 
len(sorted_li[:sorted_li.index(val)])/float(len(sorted_li)) * 100