0

複数のキーに基づいて辞書のリストをソートし、同時に出力からいくつかの辞書を削除する最適な(時間)方法は何ですか?

"protected":0出力を、任意の数の他のキーでソートされたすべての辞書のリストにしたい。

データ

[{"raffle_id":"81","created":"2013-01-07 19:47:57","instant":"1","protected":0,"expire":"never","ticket_price":"0.00050000",
"tickets_total":"10","tickets_sold":"1","my_tickets_count":"1"},
{"raffle_id":"83","created":"2013-01-07 19:49:20","instant":"0","protected":1,"expire":"4d 23h 59m","ticket_price":"0.01000000",
"tickets_total":"50","tickets_sold":"0","my_tickets_count":"0"}]

現在の方法

raffle_list = [raffle for raffle in raffle_list if raffle("protected") == "0"]

sorted_raffles = sorted(raffles_list, key = operator.itemgetter("ticket_price", "tickets_sold", "my_tickets_count", "tickets_total"))
4

1 に答える 1

1

私が提案できるのはraffle_list、ジェネレーターを作成することだけですが、利用可能なデータとメモリに応じて、より高速になる場合とそうでない場合があります。例えば。リストcompは小さなデータセットの場合は高速ですが、ジェネレーターはメモリ内でのコピーの作成を回避します。これsortedにより、コピーも作成されるため、巨大なデータセットの速度が向上する可能性があります:

(raffle for raffle in raffle_list if raffle("protected") == "0")
于 2013-04-17T09:24:30.573 に答える