怎么在python中输出一个列表中出现次数前十的元素

如题
2024-11-08 16:57:13
推荐回答(4个)
回答1:

代码如下:

def showmax(lt):     

index1 = 0                       #记录出现次数最多的元素下标     

max = 0                          #记录最大的元素出现次数     

for i in range(len(lt)):         

flag = 0                    #记录每一个元素出现的次数         

for j in range(i+1,len(lt)): #遍历i之后的元素下标             

if lt[j] == lt[i]:                 

flag += 1           #每当发现与自己相同的元素,flag+1         

if flag > max:              #如果此时元素出现的次数大于最大值,记录此时元素的下标            

max = flag            

index1 = i     

return lt[index1]               #返回出现最多的元素 

lt = [1,1,2,3,3,5,6,8,9,4,6,18,6,44,6,44,44,44] 

print(showmax(lt))

扩展资料

python的优缺点

优点:

1、优美、清晰、简单;

2、高级语言;

3、开发效率高;

4、可移植性、可拓展性、可嵌入性。

缺点:

1、运行速度慢;

2、代码不能加密;

3、线程不能利用多CPU。

python的种类:

1、Cpython:基于C语言开发的;

2、lpython;

3、Jpython;

4、PyPy:目前执行最快的。

回答2:

打印列表中出现前十的元素,可以利用列表的count属性,可以计数,然后根据数量多少排序 来输出元素
a = [1,'b','b',3,3,3,'d','d','d','d',5,5,5,5,5,'f','f','f','
f','f','f',7,7,7,7,7,7,7,'h','h','h','h','h','h','h','h',9,9
,9,9,9,9,9,9,9,'j','j','j','j','j','j','j','j','j','j',11,11
,11,11,11,11,11,11,11,11,11]
b = {}              #定义空字典
for d in set(a):    #去重复的值,set
b[a.count(d)] = d   #去重后做计数,把数量和值写到字典b
for e in reversed(sorted(b.keys())[-10:]): 
print e,':',b[e]   #排序列表键值并取后10个(数量最大的10个),翻转后打印出数量与值。

回答3:

t=[1,2,3,4,5,6,1,2,3,4,5,1,2,3,4,1,2,3,1,2,1,6,6,6,6,6,6,6,6]
d={}
for i in set(t):
d[i]=t.count(i)
t=sorted(d.iteritems(), key=lambda x : x[1], reverse=True)
j=1
for i in t:
print i[0]

按出现次数大小 输出,你取前10个就可以啦~

回答4:

使用字典,将列表中的元素作为字典的键,循环列表,每次出现一次键的值加1