我有一個串列,其中包含如下所示的字典:
[{'isin': 'IE000000001', 'MP': 'B', 'market_share': 30}, {'isin': 'IE000000002', 'MP': 'C', 'market_share': 50}, {'isin': 'IE000000003', 'MP': 'D', 'market_share': 70}]
我想根據“市場份額”對串列中的字典重新排序,這樣我最終會得到類似的結果
[{'isin': 'IE000000003', 'MP': 'D', 'market_share': 70}, {'isin': 'IE000000002', 'MP': 'C', 'market_share': 50},{'isin': 'IE000000001', 'MP': 'B', 'market_share': 30}]
你有什么建議?
uj5u.com熱心網友回復:
你不需要熊貓。
# sort the list by market_share
my_data.sort(key=lambda x:x['market_share'], reverse=True)
my_data
[{'isin': 'IE000000003', 'MP': 'D', 'market_share': 70},
{'isin': 'IE000000002', 'MP': 'C', 'market_share': 50},
{'isin': 'IE000000001', 'MP': 'B', 'market_share': 30}]
uj5u.com熱心網友回復:
您可以使用該sorted()函式并指定諸如key引數(排序依據的值)和reverse引數(是降序還是升序)之類的內容。在這種情況下,您希望按dictionary['market_share']so排序key=lambda dictionary:dictionary['market_share']。您還希望通過降低市場份額進行排序,因此reverse=True. 所有這些加在一起
data = [{'isin': 'IE000000001', 'MP': 'B', 'market_share': 30}, {'isin': 'IE000000002', 'MP': 'C', 'market_share': 50}, {'isin': 'IE000000003', 'MP': 'D', 'market_share': 70}]
data = sorted(data, key=lambda dictionary: dictionary['market_share'], reverse=True)
uj5u.com熱心網友回復:
@not_a_robot 已經回答了,只是為了給您一個替代答案,您可以sorted像這樣使用該功能:
new_list = sorted(your_list, key=lambda d: d['market_share'], reverse=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/479699.html
