Python3中列表、字典、元組、集合的看法


文首,我先強調一下我是一個弱雞碼農,這個隨筆是在我學習完Python3中的元組、字典、列表,集合這四種常見數據的數據類型的一些感想,如果有什么不對的地方歡迎大家予以指正。謝謝大家啦

回歸正題:這篇隨筆討論的是列表、字典、元組、集合。因此首先對着三種數據類型進行簡要的分析是很有必要的:

  1 :列表

    列表的特點是以“[ ]” (后面稱之為中括號)為主要特點的數據類型。學過其他語言的小伙伴第一反應就是,這不就是一個數組么,確實我個人感覺和數組十分的相似,不過有一下不同:

     a.在c++/java中數組中存放的類型是固定的,但是在python3中,列表存放的數據類型是可以不一致的。

      例如(以java為例子):

          int [] arr=new int[10]

          在arr數組中存放的數據類型智能是int類型的,並且數組長度是固定的長度(10)

     b.在java中數組長度必須申明好,你得告訴jvm你需要多大的數據空間,對應jvm會在堆里面給你開辟對應大小的存儲空間,但是列表則是不會限定大小(這點有點和java的list類似)

    主要不同點在於此兩點,聰明的小伙伴會說,那這個列表是不是就是和java的list是一樣的??回答是不是,因為雖然功能相似(真的很像)但是中括號這樣方式顯然不是一個List。但是功能卻和List極其相似寧。列表是一個可迭代的對象但卻不是一個迭代器對象。同時列表是可以動態的修改原來列表中的屬性

    接着,因為列表的可變性,所以列表有一系列的BIF(內置函數)對列表進行更加便捷的操作:

    append() 向列表中添加一個元素 

    count()  查詢列表中某個元素出現的次數

    insert()  insert函數一共有兩個參數,一個是下表一個是元素。意思為在某處插入某個元素

    reverse() 將列表到倒轉

    clear() 刪除列表中的某個元素,注意,如果元素沒有的話就會報錯(java里面理解應該是runtimeexception)

    extend()  將兩個列表連接起來

    pop()    將最頂端的值彈出

    sort()   將列表進行排序

    copy()    拷貝列表(此時位深拷貝) 

              

    index()查找某個元素所在的位置如果該元素不存在會報錯

  2.字典(DIctionary)注意:在傳遞參數用(**arg)用來保存字典

    通過對比學習,有過java學習經驗的同學可以將字典類比成java中的Map。他的表達形式是:{ key:value , }注意key與value的中間需要用:而不是,如果換成,那么就會變成了一個集合。與Map類似,字典的Key字段是不能夠重復的,因此可以理解是Key實現了Set接口,而Value實現了List接口。

    其內置BIF有:

      1.clear()---- 清楚列表中的所有值

      2.keys() ----- 獲取構造函數(dict())下的所有的key

      3.values()。----- 獲取構造函數(dict())下的所有的Values

       ....etc.

    注意:空字典用{}來創建    

  3.元組(Tuple)注意,在函數傳遞參數時候用(*arg)來接受任意長度與個數的參數,並用元組保存

    tuple的功能與list(列表)類似,它也是一個可迭代的數據類型.與list不相同的地方就是tuple是一個不可變類型。就是說一旦創建在內存中的地址就確定好了,並且里面的元素是也是伴隨着創建而固定。因而tuple沒有BIF對其數據進行修改。

    特點:以()為特點,注意是要包含, ,單個()並不是元素的特征。tuple可以被索引和切片,注意如果被索引或者切片是生成了一個新的tuple。 

        

  4.集合 (Set)

    表示一個無序不重復的序列。注意創建一個空集合可以使用{}或者set()

    集合可以用來求並交補和抑或(得出的結果依舊是Set):

      1.並  |  

      2.交 &

      3.補 -

      4.抑或 ^           

          

5.互相轉換

  截圖來源 https://www.cnblogs.com/cisum/p/8064145.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM