我正在尝试编写一个函数Frequency。它需要输入一个列表并返回出现的最大次数和最小次数
def frequency(l):
l.sort()
cont=[]
for i in l:
cont.append(l.count(i))
l=min(cont)
h=max(cont)
maxelements=[]
minelements=[]
for j in range(len(cont)):
if cont[j]==l:
minelements.append(l[j])
elif cont[j]==h:
maxelements.append(l[j])
return(maxelements,minelements)
frequency([13,12,11,13,14,13,7,11,13,14,12])
([7], [13])
答案 0 :(得分:0)
由于您正在尝试执行l[j]
,因此发生了错误。 l
是int
,如您在此处l=min(cont)
初始化的那样。您将其视为list
,可以从中获取元素。
在https://docs.python.org/3/library/functions.html#min上了解有关min()
的更多信息
min(可迭代,* [,键,默认])
min(arg1,arg2,* args [,key])
返回可迭代的最小项或两个或多个参数中的最小项。
如果提供了一个位置参数,则它应该是可迭代的。返回iterable中的最小项。如果提供了两个或多个位置参数,则返回最小的位置参数。