簡體   English   中英

按鍵列表排序

[英]sort dict by key list

我有這個:

order = [
    'foo',
    'bar',
    'baz',
]
data = {
    'bar': 'barValue',
    'foo': 'fooValue',
    'baz': 'bazValue',
}

我想最終得到這個:

sorted_data = [
    'fooValue',
    'barValue',
    'bazValue',
]

所以,我有一個帶鍵值對的字典,我有一個列表,其中包含來自該字典的鍵。 我想得到一個按鍵排序的dict值列表,按列表中指定的順序排序。

我需要這個,因為不幸的是Django不支持模板中這樣簡單的東西:

{% for key in order %}
    <div>{{ data[key] }}</div>
{% endfor %}

嘗試列表理解:

sorted_data = [data[a_data] for a_data in order]

這里有一個非常簡單的單行,它就是這樣的

Python 2.7版本

>>> map(data.get, order)
['fooValue', 'barValue', 'bazValue']

Python 3.x版本

>>> list(map(data.get, order))
['fooValue', 'barValue', 'bazValue']

使用列表理解:

>>> order = [
    'foo',
    'bar',
    'baz',
]
data = {
    'bar': 'barValue',
    'foo': 'fooValue',
    'baz': 'bazValue',
}
>>>                         
>>> [data[o] for o in order]
['fooValue', 'barValue', 'bazValue']

暫無
暫無

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

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