python小練習:給定一個非空且為正整數的列表 按重復次數 降序排列輸出
阿新 • • 發佈:2018-03-06
class 數字 轉換成 原來 小練習 顯示 python index 去重
假設有個列表 a=[1,1,1,2,2,4,5,5,5,5] (非空且為正整數)
那麽根據要求 最終輸出的形式為 5,1,2,4 (按重復次數 降序排列輸出)
代碼實現及解釋:
a=[1,1,1,2,2,4,5,5,5,5]
num=[]
for i in a:
s = a.count(i)
num.append(s)#取出數字出現的次數 放進num中
num1 = sorted(num,reverse=True)# 降序排列num 並賦值給num1
num2=list(set(num1))#去重並轉換成列表類型 (註:去重後 元素顯示是無序的)
num2.sort(key=num1.index)#按原來num1的順序排序 (對應最終按要求輸出的 a列表裏面的值 這一步很關鍵)
num3=[]
for x in num2:
for i in a:
if x ==a.count(i):
num3.append(i)#取出次數對應a列表裏面的值放進新列表num3中 num3中的元素和a列表裏面的元素一樣 只是順序是按重復的次數顯示 且元素有重復值
else:
pass
num4=[]
for j in num3:
if j not in num4:
num4.append(j)#去重
print(num4)
最後輸出為:[5, 1, 2, 4]
這邊有個知識點 列表去重後 並按原來的順序排序:
num2=list(set(num1))#去重並轉換成列表類型 (註:去重後 元素顯示是無序的)
num2.sort(key=num1.index)#按原來num1的順序排序 (對應最終按要求輸出的 a列表裏面的值 這一步很關鍵)
python小練習:給定一個非空且為正整數的列表 按重復次數 降序排列輸出