python第七天

來源:互聯網
上載者:User

標籤:set   super   nbsp   記憶體位址   remove   清空   可重複   一個   去重   

一、集合

    集合是無序的,不可重複的資料集合。集合裡面的元素是不可雜湊的(不可變類型)(元素、字串、數字),但是集合本身不可雜湊(所以集合做不了字典的鍵)。

    主要功能:

      1.去重,把一個列表變成集合,就自動去重了。

      2.關係測試,測試兩組資料之前的交集、差集、並集等關係。

    1.建立集合     

      set = {‘a‘,‘b‘,‘c‘}
      set = set({‘a‘,‘b‘,‘c‘})
      print(set)

    2.增  

      set.add(‘asd‘)    #增加
      set.update(‘asd‘)   #迭代加,一個一個加

    3.刪除

      set.remove(‘alex‘)  #按元素刪

      set.pop()      #隨機刪除

      set.clear()       #清空,傳回值為 set()

      del set       #刪除字集

    4.查

      print(set)

    5.其他動作

     set1 = {1,2,3,4,5}
     set2 = {4,5,6,7,8}

      1)交集(set1和set2相同元素)

        print(set1 & set2)
        print(set1.intersection(set2))

      2)並集(set1和set2所有的元素)

        print(set1 | set2)
        print(set1.union(set2))

      3)差集(set1裡有set2裡沒有的元素)

        print(set1 - set2)
        print(set1.difference(set2))

      4)反交集(set1和set2不同的元素)

        print(set1 ^ set2)
        print(set1.symmetric_difference(set2))

      5)子集(set1裡元素set2裡是否都有)

        print(set1 < set2)
        print(set1.issubset(set2))

      6)超集(set2裡是否有se1所有元素)

        print(set2 > set1)
        print(set2.issuperset(set1))

      7)不可變合集(frozenset)      

        set1 = {4,5}
        set2 = frozenset(set1)
        print(set2,type(set2))

        結果:frozenset({4, 5}) <class ‘frozenset‘>

二、深入copy

    1.賦值運算     

      l1 = [1,2,3,[‘alex‘,‘barry‘]]
      l2 = l1

      l1[0] = 111
      print(l1 is l2)

    l1和l2指向的都是同一個記憶體位址,所以更改l1,l2也會更改。

    2.淺copy

    l1 = [1,2,3,[‘alex‘,‘barry‘]]
    l2 = l1.copy()

    l1.append(‘as‘)
    print(l1 is l2)    #結尾為False,l1加上內容後,l1不等於l2

      

    l1 = [1,2,3,[‘alex‘,‘barry‘]]
    l2 = l1.copy()

    l1[3].append(‘sa‘)
    print(l1[3] is l2[3])    結果為True,l1裡的列表變換l2裡的列表也跟著變換。

    結論:淺copy第一層是不一樣的記憶體位址,但是第二層或更深層還是用的同一個記憶體位址。

    3.深copy

    為瞭解決淺copy問題,使用copy模組。

    import copy
    l1 = [1,2,3,[‘alex‘,‘barry‘]]
    l2 = copy.deepcopy(l1)

    l1[3].append(‘sa‘)
    print(l1 is l2)

    這樣l1和l2的記憶體位址就完全就不一樣了

 

python第七天

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.