如下所示:
lis = [12,34,456,12,34,66,223,12,5,66,12,23,66,12,66,5,456,12,66,34,5,34]def test1(): #進(jìn)行去重 c = [] for i in lis: if i not in c: c.append(i) #進(jìn)行統(tǒng)計(jì),生成二維列表 b = [] for i in c: num = 0 for j in range(len(lis)): if lis[j] == i: num += 1 a = [] a.append(i) a.append(num) b.append(a) # 排序算法,按出現(xiàn)次數(shù)進(jìn)行降序排列 for i in range(len(b)): for j in range(i,len(b)): if b[i][1] < b[j][1]: temp = b[i] b[i] = b[j] b[j] = temp print(b)def test2(): # set進(jìn)行去重,進(jìn)行統(tǒng)計(jì)生成二維列表 b = [] for i in list(set(lis)): num = 0 for j in range(len(lis)): if lis[j] == i: num += 1 a = [] a.append(i) a.append(num) b.append(a) # 排序算法,按出現(xiàn)次數(shù)進(jìn)行降序排列 for i in range(len(b)): for j in range(i,len(b)): if b[i][1] < b[j][1]: temp = b[i] b[i] = b[j] b[j] = temp print(b)def test3(): # 統(tǒng)計(jì)元素出現(xiàn)次數(shù),元素為key,次數(shù)為value,生成字典 a = {} for i in lis: if i in a: a[i] = a[i] + 1 else: a[i] = 1 # 使用sorted對字典進(jìn)行排序 b = sorted(a.items(),key=lambda item:item[1],reverse=True) print(b)def test4(): from collections import Counter import operator #進(jìn)行統(tǒng)計(jì) a = dict(Counter(lis)) #進(jìn)行排序 b= sorted(a.items(), key=operator.itemgetter(1),reverse=True) print(b)if __name__ == '__main__': test1() test2() test3() test4()
輸出結(jié)果如下:
[[12, 6], [66, 5], [34, 4], [5, 3], [456, 2], [223, 1], [23, 1]][[12, 6], [66, 5], [34, 4], [5, 3], [456, 2], [23, 1], [223, 1]][(12, 6), (66, 5), (34, 4), (5, 3), (456, 2), (23, 1), (223, 1)][(12, 6), (66, 5), (34, 4), (5, 3), (456, 2), (23, 1), (223, 1)]
這是面試過程中遇到的一個問題找到的解決方法,總結(jié)了一下,小編是初學(xué)者,還需不斷努力學(xué)習(xí)。
以上這篇python 統(tǒng)計(jì)數(shù)組中元素出現(xiàn)次數(shù)并進(jìn)行排序的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點(diǎn)
疑難解答
圖片精選