Python实现字典排序、按照list中字典的某个key排序的方法示例 ╰半橙微兮° 2021-09-21 00:56 290阅读 0赞 **这篇文章主要介绍了Python实现字典排序、按照list中字典的某个key排序的方法,涉及Python字典与列表排序相关操作技巧,需要的朋友可以参考下** 本文实例讲述了Python实现字典排序、按照list中字典的某个key排序的方法。分享给大家供大家参考,具体如下: ## 1.给字典按照value按照从大到小排序 ## 排序 <table> <tbody> <tr> <td> <p>1</p> <p>2</p> <p>3</p> </td> <td> <p><code>dict</code> <code>=</code> <code>{ </code><code>'a'</code><code>:</code><code>21</code><code>, </code><code>'b'</code><code>:</code><code>5</code><code>, </code><code>'c'</code><code>:</code><code>3</code><code>, </code><code>'d'</code><code>:</code><code>54</code><code>, </code><code>'e'</code><code>:</code><code>74</code><code>, </code><code>'f'</code><code>:</code><code>0</code><code>}</code></p> <p><code>new_dict </code><code>=</code> <code>sorted</code><code>(</code><code>dict</code><code>.iteritems(), key</code><code>=</code><code>lambda</code> <code>d:d[</code><code>1</code><code>], reverse </code><code>=</code> <code>True</code><code>)</code></p> <p><code>print</code> <code>new_dict</code></p> </td> </tr> </tbody> </table> 输出: > \[('e', 74), ('d', 54), ('a', 21), ('b', 5), ('c', 3), ('f', 0)\] ## 2. python按照list中的字典的某key排序: ## 例子: <table> <tbody> <tr> <td> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> <p>8</p> <p>9</p> <p>10</p> <p>11</p> <p>12</p> <p>13</p> </td> <td> <p><code>s</code><code>=</code><code>[</code></p> <p><code>{ </code><code>"no"</code><code>:</code><code>28</code><code>,</code><code>"score"</code><code>:</code><code>90</code><code>},</code></p> <p><code>{ </code><code>"no"</code><code>:</code><code>25</code><code>,</code><code>"score"</code><code>:</code><code>90</code><code>},</code></p> <p><code>{ </code><code>"no"</code><code>:</code><code>1</code><code>,</code><code>"score"</code><code>:</code><code>100</code><code>},</code></p> <p><code>{ </code><code>"no"</code><code>:</code><code>2</code><code>,</code><code>"score"</code><code>:</code><code>20</code><code>},</code></p> <p><code>]</code></p> <p><code>print</code> <code>"original s: "</code><code>,s</code></p> <p><code># 单级排序,仅按照score排序</code></p> <p><code>new_s </code><code>=</code> <code>sorted</code><code>(s,key </code><code>=</code> <code>lambda</code> <code>e:e.__getitem__(</code><code>'score'</code><code>))</code></p> <p><code>print</code> <code>"new s: "</code><code>, new_s</code></p> <p><code># 多级排序,先按照score,再按照no排序</code></p> <p><code>new_s_2 </code><code>=</code> <code>sorted</code><code>(new_s,key </code><code>=</code> <code>lambda</code> <code>e:(e.__getitem__(</code><code>'score'</code><code>),e.__getitem__(</code><code>'no'</code><code>)))</code></p> <p><code>print</code> <code>"new_s_2: "</code><code>, new_s_2</code></p> </td> </tr> </tbody> </table> 输出: > original s: \[\{'score': 90, 'no': 28\}, \{'score': 90, 'no': 25\}, \{'score': 100, 'no': 1\}, \{'score': 20, 'no': 2\}\] > new s: \[\{'score': 20, 'no': 2\}, \{'score': 90, 'no': 28\}, \{'score': 90, 'no': 25\}, \{'score': 100, 'no': 1\}\] > new\_s\_2: \[\{'score': 20, 'no': 2\}, \{'score': 90, 'no': 25\}, \{'score': 90, 'no': 28\}, \{'score': 100, 'no': 1\}\] **说明** 1.new\_s和new\_s2的区别在于当score均为90的时候,重新按照no排序 2.顺序为从小到大,若在`sorted`函数的参数加上`reverse = True`则为从大到小 **PS:这里再为大家推荐一款关于排序的演示工具供大家参考:** **在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:** [http://tools.jb51.net/aideddesign/paixu\_ys][http_tools.jb51.net_aideddesign_paixu_ys] [http_tools.jb51.net_aideddesign_paixu_ys]: http://tools.jb51.net/aideddesign/paixu_ys
还没有评论,来说两句吧...