python第二天,list和tuple

來源:互聯網
上載者:User

標籤:序列   src   bsp   數學公式   列表   st表   .com   class   http   

概念:list是集合,且是可變集合,tuple是元組集合,不可變集合。1.Python內建的一種資料類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。

  主要知識點:初始化集合 param = [‘jerry‘,tom‘‘,‘lily‘,‘lucy‘];  根據下標查詢指定位置內容 param[0];

  

  比如,列出班裡所有同學的名字,就可以用一個list表示:

  

  變數classmates就是一個list。用len()函數可以獲得list元素的個數

  

  用索引來訪問list中每一個位置的元素,記得索引是從0開始的:

  

  當索引超出了範圍時,Python會報一個IndexError錯誤,所以,要確保索引不要越界,記得最後一個元素的索引是len(classmates) - 1。

  

  如果要取最後一個元素,除了計算索引位置外,還可以用-1做索引,直接擷取最後一個元素:

  

  當然,如果越界,也會報錯的。

  list是一個可變的有序表,所以,可以往list中追加元素到末尾。通過.append()即可實現對數組的追加

  

  也可以把元素插入到指定的位置,比如索引號為1的位置,這裡主要通過.insert():

  

  要刪除list末尾的元素,用pop()方法,這個方法刪除的是集合最後一個元素:

  

  當需要刪除指定位置的元素時,利用pop(i),輸入該元素所在下標即可:

  

  要把某個元素替換成別的元素,可以直接賦值給對應的索引位置,和java中數組的改變方式一致:

  

  list裡面的元素的資料類型也可以不同,比如:

  

  當然,也可以插入一個數組:

  

  我們想要取出apple,需要通過classmates[4][0]來擷取,:

  

  由此可以看出python也是支援二維數組、三維數組等多維度數組的。

  ----------------------------------------------------勝天半子分割線-----------------------------------------------------------------

  tuple是有序列表叫元組。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:

  

  現在,tuple不能變了,它也沒有append(),insert()這樣的方法。其他擷取元素的方法和list是一樣的,你可以正常地使用students[0],students[-1],但不能賦值成另外的元素。
  不可變的tuple有什麼意義?因為tuple不可變,所以代碼更安全。如果可能,能用tuple代替list就盡量用tuple。
  tuple的陷阱:當你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來,想要再去更改該集合都是無濟於事。

  

  如果要定義一個空的tuple,可以寫成():

  

  但是,要定義一個只有1個元素的tuple,如果你這麼定義:

  

  定義的不是tuple,是1這個數!這是因為括弧()既可以表示tuple,又可以表示數學公式中的小括弧,這就產生了歧義,因此,Python規定,這種情況下,按小括弧進行計算,計算結果自然是1。
  所以,只有1個元素的tuple定義時必須加一個逗號,,來消除歧義:

  

  Python在顯示只有1個元素的tuple時,也會加一個逗號,,以免你誤解成數學計算意義上的括弧。
  最後來看一個“可變的”tuple:

  

  首先定義了一個arr的list,並且在其中添加了兩個元素,然後將這個list添加到arr這個元組裡,這時元組的元素是不可以改變的,但是我們將arr中下表為0的元素改為mike時居然成功了,這是因為表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素。tuple一開始指向的list並沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。

  理解了“指向不變”後,要建立一個內容也不變的tuple怎麼做?那就必須保證tuple的每一個元素本身也不能變

  list和tuple是Python內建的有序集合,一個可變,一個不可變。根據需要來選擇使用它們。

 

python第二天,list和tuple

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.