判断是否有重复的元素,按元素出现的次数从高到低的顺序输出
第一种用集合法判断 普通
def isrepeat(list):#判断是否有重复数据,输出重复元素的个数
a={}
reelmt_l=[]
e_index=len(list)
re_len=len(set(list))#判断是否有重复元素
if e_index==re_len:
print('no doubt data')
else:
relist = set(list)
for i in relist:
if list.count(i) > 1:
a[i]=list.count(i)#
reelmt_l.append(i)
print("the %d has found count %d" % (i, list.count(i)))#输出重复元素的个数
a = sorted(a.items(), key=lambda item: item[1], reverse=True)#重复元素倒序排列
print(a)
print(find_index(reelmt_l,list))
#查找重复元素在list位置index
def find_index(reelemtl,list):
re_dict={}
e_index = len(list)
for i in reelemtl :
s_index = 0
re_index = []
while (s_index < e_index):
try:
temp = list.index(i, s_index, e_index)
re_index.append(temp)
s_index = temp + 1
except ValueError:
break
re_dict[i]=re_index
return re_dict
第二种方法 快
def setpreatlist(list):
setlist=Counter(list)#显示重复的元素
if len(setlist)!=0:
# dic = sorted(setlist.items(), key=lambda item: item[1])#升序排列
dic=sorted(setlist.items(),key=lambda item:item[1],reverse=True)#降序
print(dic)
else:
print('no doubt data!')
浙公网安备 33010602011771号