【发布时间】:2015-09-30 21:14:04
【问题描述】:
我正在编写一个 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
如何修复此函数以生成最常出现的项目列表(而不是最常出现的项目中的第一个)以及如何删除索引?
【问题讨论】:
-
“我正在编写一个...生成列表的 python 函数” - 不,你不是。完全不清楚该函数应该做什么,或者这与它实际在做什么有什么不同。
-
您希望退回多少件商品?只有前两个最频繁?
-
@jonrsharpe 我正在努力......
-
@MalikBrahimi 是最常出现的项目,但如果两个不同的项目出现相同的情况,并且它在列表中的其余项目中是最大的,那么这两个项目的列表按它们的第一个的顺序排列出现在列表中。同样的,有 3 或 4 个等不同的项目出现相同的情况,并且出现频率最高
-
@ShagunChhikara 试试下面的代码。
标签: python list loops for-loop for-in-loop