我正在编写一个python函数,它使用一个字符串列表并生成一个最频繁出现的项的列表。
例如:
>>> trending(["banana", "trouble", "StarWars", "StarWars", "banana", "chicken", "BANANA"])
["banana", "StarWars"]
但是
>>> trending(["banana", "trouble", "StarWars", "Starwars", "banana", "chicken"])
["banana"]
到目前为止,我已经编写了一个函数,它只生成频繁出现的第一个单词,而不是一个频繁出现的单词列表。另外,我的列表包含了一个频繁项的索引。
def trending(slst):
words = {}
for word in slst:
if word not in words:
words[word] = 0
words[word] += 1
return words
如何修复此函数以生成最频繁出现的项(而不是第一个最频繁出现的项)的列表,以及如何删除索引?
最佳答案
不使用Counter
您可以使用dict
创建自己的计数器,并提取频繁项:
def trending(slst):
count = {}
items = []
for item in set(slst):
count[item] = slst.count(item)
for k, v in count.items():
if v == max(count.values()):
items.append(k)
return items