compiler cache for MSVC(ccacheはgccとよく似ています)を書きました。私がしなければならないことの1つは、キャッシュディレクトリ内の最も古いオブジェクトファイルを削除して、キャッシュをユーザー定義のサイズに調整することです。Pythonのリストを部分的にソートするにはどうしたらいいですか?
# First tuple element is the access time, second tuple element is file size
items = [ (1, 42341),
(3, 22),
(0, 3234),
(2, 42342),
(4, 123) ]
は今、私はこのリストに部分の並べ替えを行うにはしたいと思います:
は今のところ、私は基本的にそのそれぞれが最終アクセス時間とファイルサイズで、タプルのリストを持っています最初のN個の要素がソートされます(Nは要素の数であり、そのサイズの合計は45000を超えます)。結果は、基本的にはこのようになります。
# Partially sorted list; only first two elements are sorted because the sum of
# their second field is larger than 45000.
items = [ (0, 3234),
(1, 42341),
(3, 22),
(2, 42342),
(4, 123) ]
私は本当にソートされていないエントリの順番を気にしない、私はちょうど累積サイズ一定の値を超え、リスト内のN最古のアイテムが必要。
すべてソートされていれば問題ですか?それとも、物事を速く保つために外に出ていますか? – Ishpeck
@Ishpeck:私は物事を速くしようとしています。現在のところ十分に速いですが、リストは私がここにあるよりはるかに大きくなるかもしれません。私は将来のためにそれが求められる場合に最適化の可能性を研究しています。 –