欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)嵌套列表去重方法示例

 更新時間:2017年12月28日 10:52:19   作者:_Apache  
人生苦短,早用Python。python可以說2017比較火的一個語言了,下面這篇文章主要給大家介紹了關(guān)于利用Python實現(xiàn)嵌套列表去重的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。

發(fā)現(xiàn)問題

python嵌套列表大家應(yīng)該都不陌生,但最近遇到了一個問題,這是工作中遇到的一個坑,首先看一下問題

raw_list = [["百度", "CPY"], ["京東", "CPY"], ["黃軒", "PN"], ["百度", "CPY"]]

列表嵌套了列表,并且有一個重復(fù)列表["百度", "CPY"],現(xiàn)在要求將這個重復(fù)元素進行去重(重復(fù)是指嵌套的列表內(nèi)兩個元素都相同),并且保證元素順序不變,輸出還是嵌套列表,即最后結(jié)果應(yīng)該長這樣:[["百度", "CPY"], ["京東", "CPY"], ["黃軒", "PN"]]

正常Python去重都是使用set,所以我這邊也是用這種思想處理一下

In [8]: new_list = [list(t) for t in set(tuple(_) for _ in raw_list)]
In [9]: new_list
Out[9]: [['京東', 'CPY'], ['百度', 'CPY'], ['黃軒', 'PN']]

=。=以為大功告成,結(jié)果發(fā)現(xiàn)嵌套列表順序變了

好吧一步步找一下是從哪邊順序變了的

In [10]: s = set(tuple(_) for _ in raw_list)
In [11]: s
Out[11]: {('京東', 'CPY'), ('百度', 'CPY'), ('黃軒', 'PN')}

恍然大悟關(guān)于set的兩個關(guān)鍵詞:無序 和 不重復(fù) =。=

所以從set解決排序問題基本無望了,然而我還沒有放棄,現(xiàn)在問題就變成了對于new_list怎么按照raw_list元素順序排序,當(dāng)然肯定要通過sort實現(xiàn)

翻一下Python文檔找到以下一段話

文檔地址

sort(*, key=None, reverse=False)

This method sorts the list in place, using only < comparisons between 
items. Exceptions are not suppressed - if any comparison operations  
fail, the entire sort operation will fail (and the list will likely be left in a 
 partially modified state).

 [`sort()`](https://docs.python.org/3/library/stdtypes.html?highlight=sort#list.sort "list.sort") 

accepts two arguments that can only be passed by keyword ( [keyword-only arguments](https://docs.python.org/3/glossary.html#keyword-only-parameter) ):

key specifies a function of one argument that is used to extract a 
comparison key from each list element (for example, key=str.lower). 
 The key corresponding to each item in the list is calculated once and  then used for the entire sorting process. The default value of None 
means that list items are sorted directly without calculating a separate
 key value.

開始劃重點:

sort方法通過參數(shù)key指定一個方法,換句話說,key參數(shù)的值是函數(shù)。

這個函數(shù)和new_list上的每個元素會產(chǎn)生一個結(jié)果,sort通過這個結(jié)果進行排序。

于是這里就想到求出new_list里的每一個元素在raw_list里的索引,根據(jù)這個索引進行排序。

代碼實現(xiàn)如下:

In [13]: new_list.sort(key=raw_list.index)
In [14]: new_list
Out[14]: [['百度', 'CPY'], ['京東', 'CPY'], ['黃軒', 'PN']]

結(jié)果和期望一樣 =。=

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Python實例練習(xí)水仙花數(shù)問題講解

    Python實例練習(xí)水仙花數(shù)問題講解

    這篇文章介紹了Python找水仙花數(shù)從分析到實現(xiàn)的過程,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python列表的淺拷貝與深拷貝

    Python列表的淺拷貝與深拷貝

    這篇文章主要介紹了Python列表的淺拷貝與深拷貝,對列表深拷貝就是無論怎樣改動新列表,單維or多維,原列表都不變,需要的小伙伴可以參考下面更詳細內(nèi)容
    2022-03-03
  • Python?web框架實現(xiàn)增加BasicAuth認證詳解

    Python?web框架實現(xiàn)增加BasicAuth認證詳解

    這篇文章主要為大家詳細介紹了Python如何在web框架中實現(xiàn)增加BasicAuth認證,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-05-05
  • PyQt5中向單元格添加控件的方法示例

    PyQt5中向單元格添加控件的方法示例

    這篇文章主要介紹了PyQt5中向單元格添加控件的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python實現(xiàn)的序列化和反序列化二叉樹算法示例

    Python實現(xiàn)的序列化和反序列化二叉樹算法示例

    這篇文章主要介紹了Python實現(xiàn)的序列化和反序列化二叉樹算法,結(jié)合實例形式分析了Python二叉樹的構(gòu)造、遍歷、序列化、反序列化等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • python如何使用socketserver模塊實現(xiàn)并發(fā)聊天

    python如何使用socketserver模塊實現(xiàn)并發(fā)聊天

    這篇文章主要介紹了python如何使用socketserver模塊實現(xiàn)并發(fā)聊天,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python網(wǎng)頁解析器使用實例詳解

    Python網(wǎng)頁解析器使用實例詳解

    這篇文章主要介紹了Python網(wǎng)頁解析器使用實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Python中怎樣查找文件當(dāng)前位置

    Python中怎樣查找文件當(dāng)前位置

    這篇文章主要介紹了Python中怎樣查找文件當(dāng)前位置的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python抓取網(wǎng)頁內(nèi)容示例分享

    python抓取網(wǎng)頁內(nèi)容示例分享

    這篇文章主要介紹了python抓取網(wǎng)頁內(nèi)容示例,在抓取的時候?qū)τ趃bk編碼網(wǎng)頁還需要轉(zhuǎn)化一下,具體看下面的示例吧
    2014-02-02
  • python3整數(shù)反轉(zhuǎn)的實現(xiàn)方法

    python3整數(shù)反轉(zhuǎn)的實現(xiàn)方法

    這篇文章主要介紹了python3整數(shù)反轉(zhuǎn)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論