標籤:序列 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