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"))
其實,這很可能是最有效的方式來做到這一點。你在談論原始速度嗎? – jamylak
是的,它需要儘可能快。我希望有一些簡單的方法來結合這兩個操作,所以列表不需要遍歷兩次。 – LJNielsenDk
你已經完成了所有的事情,你唯一可以嘗試的就是使'raffle_list'成爲一個生成器,例如。 '(如果抽獎(「保護」)==「0」),但是列表解析在實際上更快......因爲'sorted'會生成另一個副本,所以只保存一次列表複製到內存中的抽獎(raffle在raffle_list中)將不得不測試它 – jamylak