要素の頻度別にリストをソートするこのコードがあります。 2つの要素の頻度が同じ場合を除いて、他のすべてのケースで機能します。周波数が同じであれば、私は、より高い値の前に最初に小さい値を配置する:[3,1,2,2,4]
の場合要素の頻度別にPythonリストをソート
counts = collections.Counter(arr)
new_list = sorted(arr, key=lambda x: counts[x])
for item in new_list:
print item
出力は[1,3,4,2,2]
する必要がありますが、私は[3,1,4,2,2]
を取得します。このエラーを解決するにはどうすればよいですか?
'[4,3,1,2,2]は'それは最初の小さな数でなければならない場合、私は思う間違った出力 – user2916886
それはする必要があります ' new_list = sorted(arr、key = lambda x:(counts [x]、x)) '? – Karin
@カリンよ、すみません。それを私が直した。 – levi