簡體   English   中英

在Python中對列表進行排序

[英]Sorting dictionary of lists in Python

我正在制定拍賣程序,需要按價格和日期對存儲的出價進行排序。 我試圖拉任何等於底價的出價,並找到最早的出價。 我已經從另一個問題中拉出了下面的行,但是我需要找到最高出價(如果有兩個相同的值,則反向排列以帶來最高出價,然后是最早的出價)。

sorted(stored_bids_1.items(), key=lambda e:e[1][2][3][4])

該詞典具有以下信息:

stored_bids_1 {bid_number : [cust_bid_price, bid_date_time, cust_num_seats, cust_name]}

我希望按出價,然后按日期和時間對出價進行排名。

任何幫助深表感謝!

乍一看,我能想到的一件大事就是使用不同的數據結構。 您擁有的二分法可以很好地存儲信息,但顯然會帶來麻煩。 我建議使用另一本字典詞典,這樣您可以通過子詞典中的鍵訪問不同的值(cust_bid_price,bid_date_time等)。 它絕對不是完美的,但是它可能會導致另一種看待這個問題並解決您所遇到的問題的方式。

我需要找到最高出價(如果有兩個相同的值,則反向排列以帶來最高出價,然后是最早的出價)。

這可以通過利用排序穩定性並進行兩個連續的排序來完成:

bids.sort(key = lambda e: e[1])               # where e[1] is bid_date_time
bids.sort(key = lambda e: e[0], reverse=True) # where e[0] is cust_bid_price

有關更多說明和另一個示例,請參見Python Sorting HowTo指南。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM