在Python中,是否可以计算列表中元素出现的相对频率呢?
例如:
['apple', 'banana', 'apple', 'orange'] # apple for example would be 0.5
在Python中,是否可以计算列表中元素出现的相对频率呢?
例如:
['apple', 'banana', 'apple', 'orange'] # apple for example would be 0.5
def counter_to_relative(counter):
total_count = sum(counter.values())
relative = {}
for key in counter:
relative[key] = counter[key] / total_count
return relative
lst = ['apple', 'banana', 'apple', 'orange']
counts = [(word, lst.count(word) / len(lst)) for word in set(lst)]
[('orange', 0.25), ('banana', 0.25), ('apple', 0.5)]
注意:
def relative_frequency(lst, element):
return lst.count(element) / float(len(lst))
words = ['apple', 'banana', 'apple', 'orange']
print(relative_frequency(words, 'apple'))