將陣列中的數字按出現次數排序列印
阿新 • • 發佈:2021-01-22
技術標籤:資料結構與演算法題集錦
例如:[0,1,2,0,2,2,1,1,4],則輸出[4,0,1,2]或按順序打印出4,0,1,2。
l= [0,1,2,0,2,2,1,1,4] dic = {} for v in l: # 統計每個數字出現的次數並存入dictionary,數字本身為key,出現的次數為value。 if v in dic: dic[v] = dic[v] + 1 else: dic[v] = 1 l_new = [None] * len(l) # 生成一個list for k,v in dic.items(): # 將dictionary中統計的數字放入list,數字出現次數為list下標,元素為數字本身。 if l_new[v] is None: # 如果發現下標衝突了,則放入下一個位置。 l_new[v] = k else: l_new[v + 1] = k print([i for i in l_new if i is not None]) # 最後將非None的元素輸出即可。