今天遇到乙個多列排序的問題,排序規則正反不等。接下來就讓我們來看看python的強大之處吧
我遇到的集合是這樣的:
tm_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的強大之處吧 我遇到的集合是這樣的 tm list 這是一組商標資料,初步的要求是按照相似型別 sm type倒敘,中文相似度 sm zh倒敘排列,我們可以這樣寫 sorted tm list,key lambda tm ...
python多列排序 python多列排序
python的sort 和sorted 函式可以進行多列排序。在乙個文字或者列表有多列時,這是乙個很好用的技巧。首先,看一下待排序的資料 這是乙個csv檔案,它有6列,我們需要首先對第一列排序,再對第六列排序 46896961,192100485,1,95wf5sm,1863,2014 12 18 ...
SQL ORDER BY 多列排序
最近學習my sql的時候對order by的多列排序邏輯不是很清楚,查閱了一些資料加上自己動手做了幾個小實驗清楚了不少,本結論僅適用於實驗條件下成立 列值為 int 先上結論 如 order by 列名1,列名2,列名3 若列名後不加限制條件,將直接按照離order by語句最近的無限制條件的列名...