簡體   English   中英

根據鍵、值對字典列表進行排序,使得鍵、值對中僅有的前三個應出現在給定的字典列表中

[英]Sort list of dictionaries according to key, value such that the only first three of the key, value pair should come in the given list of dict

如果排序大於該字典,則按關鍵字“排序”對字典進行排序,然后將包含下一個更大排序的字典和前三個更大排序的字典存儲在列表中。

輸入:

my_list = [{u'item_group': u'Bits Special',
         u'item_name': u'Tool Bits-Metric',
         u'ordering': 1},
        {u'item_group': u'Performance Drills 3X',
         u'item_name': u'Drills-Short-Metric',
         u'ordering': 3},
        {u'item_group': u'Hand Taps',
         u'item_name': u'Shank-Metric',
         u'ordering': 4},
        {u'item_group': u'Tool Bits',
         u'item_name': u'T42-Square HSS Tool Bits-BSW',
         u'ordering': 2,}]

預期o/p:

     op_list = [{u'item_group': u'Hand Taps',u'item_name': u'Shank-Metric',
           u'ordering': 4},{u'item_group': u'Performance Drills 3X',
           u'item_name': u'Drills-Short-Metric',u'ordering': 3}, 
          {u'item_group': u'Tool Bits',u'item_name': u'T42-Square HSS 
           Tool Bits-BSW',u'ordering': 2,}]

我試過了 :

 for i in mylist:
       if i['ordering']>mylist['ordering']:
          op_list.append(i)

有一些示例展示了如何對列表進行排序,並提供您自己的密鑰以用於比較。 你需要這個倒轉(即降序),然后需要前三名。

簡化你所擁有的,考慮

my_list=[{u'ordering':1}, {u'ordering':3}, {u'ordering':4}, {u'ordering':2}]

你可以這樣排序:

>>> sorted(my_list, key=lambda d: d[u'ordering'], reverse=True)
[{'ordering': 4}, {'ordering': 3}, {'ordering': 2}, {'ordering': 1}]

切掉你需要的東西:

>>> sorted(my_list, key=lambda d: d[u'ordering'], reverse=True)[:3]
[{'ordering': 4}, {'ordering': 3}, {'ordering': 2}]

暫無
暫無

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

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