簡體   English   中英

Python通過鍵值列表對字典進行排序

[英]Python sort dictionary by a list of key values

我有一個值列表,它是排序順序:

order = ['foo', 'bar']
data = [{'name': 'bar', 'someData': 'someValue'}, {'name': 'foo', 'someData': 'someValue'}]

我想根據順序對數據(按“名稱”排序)

您可以像這樣去:

sorted(data, key = lambda x: order.index(x["name"]))

我將提前創建一個訂單映射以使關鍵功能更快:

def create_key(order, field='name'):
    order_map={v: i for (i, v) in enumerate(order)} 
    def key(elem):
       return order_map[elem[field]]
    return key

data.sort(key=create_key(order))

暫無
暫無

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

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