python列表套字典多列排序

2021-10-05 15:25:29 字數 719 閱讀 8505

原始資料:

m_list = [,,,

,]

這是一組商標資料,初步的要求是按照相似型別:sm_type倒敘,中文相似度:sm_zh倒敘排列,我們可以這樣寫:

sorted(tm_list, key=lambda tm: (tm["sm_type"], tm["sm_zh"]), reverse=true)
結果:

[

, ,

, ,

]

結果正確無誤,但是需求你們的懂的,就像是女朋友的臉,風雲變幻。果然,很快變化來了。我們需要根據:sm_type倒敘,sm_zh倒敘,markname長度正序排列,這時候多列排序的規則不再一致,所以reverse就顯得力不從心了。按照名稱長短正序排列的話 「燁辰」 應該在 「意迪拉凱」 前面

那我們該如何解決這個問題呢,python中還封裝了另乙個好用的方法,就是「-」號排序。like this:

sorted(tm_list, key=lambda tm: (-tm["sm_type"], -tm["sm_zh"], len(tm["markname"])))
排序中加「-」號的為倒敘,不加「-」號的為正序,我們看一下排序結果:

[

, ,

, ,

]

python多列排序 python多列排序

python的sort 和sorted 函式可以進行多列排序。在乙個文字或者列表有多列時,這是乙個很好用的技巧。首先,看一下待排序的資料 這是乙個csv檔案,它有6列,我們需要首先對第一列排序,再對第六列排序 46896961,192100485,1,95wf5sm,1863,2014 12 18 ...

python3列表和字典排序

1.1 列表排序list.sort,改變原始列表的順序,reverse按降序排列 list.sort key none,reverse false 如下 所有學生成績,按數學成績排序 students students.sort key lambda item item.get math rever...

Python集合多列排序,多規則排序

今天遇到乙個多列排序的問題,排序規則正反不等。接下來就讓我們來看看python的強大之處吧 我遇到的集合是這樣的 tm list 這是一組商標資料,初步的要求是按照相似型別 sm type倒敘,中文相似度 sm zh倒敘排列,我們可以這樣寫 sorted tm list,key lambda tm ...