Python筆記02-序列:列表和元組

【序列通用操作】

1.Python中基本的數據結構是“序列”。序列分爲6種,最主要的兩種類型是“列表”和“元組”(區別:列表可以修改,元組不能修改)。其他的序列:字符串、Unicode字符串、buffer對象、xrange對象。

2.幾乎所有的情況下,列表都可以替代元組;除了 在使用元組作爲字典的鍵,此時因爲鍵不可修改,所以不能使用列表。

【序列演示】

(1)一維

(2)多維

【對序列的操作】

索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)、計算長度、找出最大元素和最小元素、迭代(對序列中的每個元素重複執行某些操作)。

1.索引—— 可以通過索引獲取元素。-1 表示從右邊取值。

(1) 可以通過索引的方式獲取用戶輸入的第幾個字符,例如:raw_input('')[3]

2.分片 —— 獲取一定範圍內的序列(或者字符串),用冒號(:) 分割start和end的範圍【包含start,不包含end】,例如 tag[1:6]

(1) 訪問最後三個元素, num[4:6] 或者 置空end值—— num[-3:]

(2)也可以置空start值,表示從0到end —— num[:3] ,那麼要取整個序列,則全部置空—— num[:]

(3)提取 .com 結尾的域名。http://www. 共11個字符,因此就是 url[11:-4]

3.分片——更大的步長。例如:每隔2取一個數;每隔3取一個數。

(1)也可以取全部數據,按照2爲步長—— num[::2]; 步長可以是負數(從右到左)。

4.序列相加(連接)——必須是相同類型的序列才能連接在一起,用 + 符號連接。

5.序列的乘法,用 * 符號連接:

(1)空值 用None 表示:

6.檢查一個值是否在序列中—— in ,返回布爾。

(1)案例:檢查用戶名和密碼是否正確

7.序列的:長度 len()、最小值min()、最大值max()。

【列表】

1. list 函數:根據字符串創建列表。適用於所有的類型,不只是字符串。

2.基本的列表操作:

(1)改變列表:元素賦值 —— 使用索引標記來爲某個特定的、位置明確的元素賦值,如 x[1]=2。

(2)刪除元素—— 使用del 語句實現。

(3)分片賦值 —— 直接看圖

可以使用與原序列不等長的序列將分片替換:

可以在不需要替換任何原有元素的情況下插入新的元素:

也可以通過分片賦值來刪除元素,如下案例等同於 del nums[1:4]

3.列表方法

◆ 方法這樣調用: 對象.方法(參數)

(1)append 方法——用於在列表末尾追加新的對象:x.append(y)

append方法不是簡單的返回一個修改過的新列表,而是直接修改了原來的列表。

(2)count方法——統計某個元素在列表中出現的次數: x.count(y)

(3)extend 方法 —— 在列表的末尾一次性追加另一個序列中的多個值,也就是說:用新列表擴展原有的列表。x.extend('value')

① 注意區分:連接操作 + ,extend會改變列表的初始值,連接 不會改變。

② 可以使用 分片賦值 實現 和 extend 同樣的效果,但是代碼的可讀性不如 extend:

(4)index方法 —— 從列表中找出某個值第一個匹配項的索引位置;如果沒有匹配項則會報錯。x.index('value')

(5)insert方法 —— 將對象插入到列表中。x.insert(key,'value')

◆ insert 方法也可以用 分片賦值 來實現。

(6)pop方法 —— 移除列表中的一個元素(默認是最後一個),並返回該元素的值。pop是唯一一個既能修改列表又返回元素值(除了None)的列表方法。x.pop('可選key')

◆ 棧:後進先出。分爲:入棧(append) 和 出棧(pop) 。如果入棧剛剛出棧的值,得到的結果還是原來的棧。

(7)remove方法 —— 移除列表中某個值的第一個匹配項。x.remove('value')

(8)reverse 方法 —— 將列表中的元素翻轉。x.reverse()

◆ 注意對比:reversed(),需要使用list函數把返回的對象轉換成列表。

(9)sort 方法 —— 對列表排序。 x.sort()

① 如果需要只返回排序後的列表 而不改變原來的列表,需要 y=x[:],而不是 y=x

② 也可以使用 sorted() 函數 獲取已排序的列表副本:

(10)高級排序

◆ compare(x,y) 函數:x<y返回負數,x>y返回正數,x=y返回0.定義好之後就可以提供給sort方法作爲參數了。

◆ 內建函數cmp

【元組】

1、元組的創建(元組不能修改)

創建元組:用逗號分隔的一些值,就自動創建了元組。

元組大部分時候也是通過圓括號括起來的。

空元組就是一對括號。

如果一個元組裏面只有一個值(長度爲1的元組),則必須給這個值後面加個逗號。

可以看出來,一個逗號是很重要的,能夠徹底改變表達式的值:

2.tuple函數:以一個序列作爲參數並把它轉換爲元組。(與list函數基本一致)

3.基本的元組操作:除了創建和訪問之外,沒有其他太多操作。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章