1. <th id="d83bz"></th>
      2. 您所在位置:主頁 > 職業教育 > IT培訓 > python培訓 >

        python中如何比較兩個列表?

        時間:2022-08-12發布于:教育培訓網發布人:百學培訓瀏覽:0

        python中如何比較兩個列表?

         

        今天這篇文章主要介紹python中列表的幾種不同的比較方式,對兩個列表的比較在平常用的是非常多的,例如你處理的數據放到了列表中,間隔一段時間又獲取到了新的數據,這個時候可以通過對比來確定是否有新數據產生,最近我在工作中就遇到了要將兩個列表對比的實際場景,需求跟上面說的類似,就是對間隔獲取的數據進行比較,來確定下一步如何進行操作,下面我們說一下具體比較的幾種方式。

         

        1、python sort()方法配合==比較符

        要比較的兩個列表可能順序不一致,所以我們可以先sort()排序,這樣列表中的元素位置我們就可以忽略了,因為如果兩個列表相等,元素的索引也是一樣的。

        >>> L1 = [1,2,3,4,5]
        >>> L2 = [5,4,3,2,1]
        >>> if L1.sort() == L2.sort():
        ... print('they are same')
        ...
        they are same

        這種方式簡單直接,我沒看另一種方式。

         

        2、先轉成集合,然后再用==比較

        這種方式是針對列表中有重復數據項,但我們不太關心,可以用這種方式,而且集合也不考慮元素的順序:

        >>> L1 = [1,2,3,4,5]
        >>> L2 = [5,4,3,2,1]
        >>> s1 = set(L1)
        >>> s2 = set(L2)
        >>> if s1 == s2:
        ... print('they are same')
        ...
        they are same

         

        3、使用collection模塊的方法counter()

        collection.counter()方法可以有效地比較列表,因為 counter() 函數可以計算列表中項目的出現的次數(或頻率),然后輸出 一個字典的格式的數據, 如:值:次數(頻率), 因此如果兩個列表具有完全相同的字典輸出,我們可以推斷這些列表是相同的,而且列表順序對 counter() 方法是沒有影響。

        >>> from collections import Counter
        >>> L1 = [1,2,3,4,5]
        >>> L2 = [5,4,3,2,1]
        >>> if Counter(L1) == Counter(L2):
        ... print('they are same')
        ... else:
        ... print('they are not same')
        ...
        they are same

        4、用列表推導式

        使用列表推導方式的原理的查找兩個列表中的不同的元素,即該元素不在列表A中或不在列表B中,那么可以判斷這2個列表是不同的,因為他們有不同的元素,反之可以判斷他們是一樣的,代碼如下:

        >>> L1 = [1,2,3,4,5]
        >>> L2 = [5,4,3,2,1]
        >>> r = [ x for x in L1+L2 if x not in L1 or x not in L2]
        >>> if not r:
        ... print('they are same')
        ...
        they are same

         

        以上只是比較單層數據的列表比較,如果有嵌套類別比較,可以參考使用deepdiff 庫,具體限于篇幅不做擴展,感興趣的小伙伴可以自行嘗試。

        以上就是列表比較的例子,歡迎留言交流。
         

         

          聲明:

          本站(www.rxbbx.com)部分圖文轉自網絡,刊登本文僅為傳播信息之用,絕不代表贊同其觀點或擔保其真實性。若有來源標注錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯系,我們將及時更正、刪除,謝謝

        熱點推薦

        推薦圖文

        熱點標簽

        强奸到高潮视频

          1. <th id="d83bz"></th>