python語言學習——元組與列表
1. 序列類型
1.1 序列類型基本知識
序列類型是一維元素向量,元素之間存在先後關係,通過序號訪問。
由於元素之間存在順序關係,所以序列中可以存在數值相同但是位置不同的元素。序列類型支持成員關係操作符(in)、長度計算操作符(len())、分片([]),元素本身也可以是序列類型。
Python語言中有很多數據類型都是序列類型,其中比較重要的是str(字符串)、tuple (元組)和list (列表)。字符串(str) 可以看成是單一字符的有序組合,屬於序列類型。同時,由於字符串類型十分常用且單一字符串只表達一個含義,也被看作是基本數據類型。
元組是包含0個或多個數據項的不可變序列類型。元組生成後是固定的,其中任何數據項不能替換或刪除。列表則是一個可以修改數據項的序列類型,使用也最靈活。無論哪種具體數據類型,只要它是序列類型,都可以使用相同的索引體系,即正向遞增序號和反向遞減序號。
1.2 序列類型的通用操作符和函數
操作符 | 描述 |
---|---|
x in s | 如果x是s的元素,則返回True;否則返回False |
x not in s | 與第一個相反 |
s+t | 連接s和t |
s*n | 將序列s複製n次 |
s[i] | 索引,返回序列的第i個元素 |
s[i:j] | 分片,返回s中**[i,j)**個元素,注意不包括j |
s[i:j:k] | 步驟分片,返回包含序列s第i個到第j個元素以k爲步長的子序列 |
len(s) | 序列s元素的長度 |
min(s) | 序列s中的最小元素 |
max(s) | 序列s中的最大元素 |
s.index(x[,i[,j]]) | 序列s中從i開始到j位置中第一次出現元素x的元素 |
s.count(x) | 序列s中出現x的總次數 |
1.2.調試情況
>>> s = 'a','b','c','d','e'
>>> 'a' in s
True
>>> 'a' not in s
False
>>> t = 'q','w','e'
>>> s+t
['a', 'b', 'c', 'd', 'e', 'q', 'w', 'e']
>>> s*3
['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e']
>>> s[2]
'c'
>>> s[0:3]
['a', 'b', 'c']
>>> s[0:3:2]
['a', 'c']
>>> len(s)
5
>>> min(s)
'a'
>>> max(s) #此處是比較ascll所對應的十進制的大小
'e'
>>> s.index('a')
0
>>> s.count('b')
1
1.3 元組
元組(tuple)是序列類型中比較特殊的類型,因爲它一旦創建就不能被修改。元組類型在表達固定數據項、函數多返回值、多變量同步賦值、循環遍歷等情況下十分有用。
通過循環遍歷結合math庫,可以求出多個座標值到原點的距離:
>>> import math
>>> for x, y in ((1,1),(2,6)):
print(math.hypot(x,y))
1.4142135623730951
6.324555320336759
2. 列表類型
2.1 列表類型的基本概念
列表(list) 是包含0個或多個對象引用的有序序列,屬於序列類型。與元組不同,列表的長度和內容都是可變的,可自由對列表中的數據項進行增加、刪除或替換。列表沒有長度限制,元素類型可以不同,使用非常靈活。
由於列表屬於序列類型,所以列表也支持成員關係操作符(in)、 長度計算函數(len()、分片([])。 列表可以同時使用正向遞增序號和反向遞減序號,可以採用標準的比較操作符(<. <=、==、!=、>=)進行比較,列表的比較實際上是單個數據項的逐個比較。
列表用中括號([]) 表示,也可以通過list()函數將元組或字符串轉化成列表。直接使用list()函數會返回一個空列表。
>>> list('dream')
['d', 'r', 'e', 'a', 'm']
>>> list()
[]
此外,簡單將一個列表賦值給另一個列表不會生成新的列表對象
2.2 列表類型特有的函數或方法
函數或方法 | 描述 |
---|---|
ls[i]=x | 替換ls中第i項爲x |
ls[i:j]=lt | 用列表lt替換ls中第i到第j項數據 |
del ls[i:j] | 刪除ls第i到第j項數據 |
ls += lt/ls.extend(lt) | 將列表lt增加到ls中 |
ls.qppend(x) | 在列表最後增加一個元素x |
ls.clear | 清除ls中所有元素 |
ls.copy | 生成一個新列表,複製ls中所有元素 |
ls.insert(i,x) | 在列表的第i位置增加元素x |
ls.pop(i) | 將列表ls中的第i項元素提取出來並刪除 |
ls.remove(x) | 將列表中出現的第一個元素x刪除 |
ls.reverse(x) | 列表ls中的元素反轉 |
2.2.調試情況
>>> a = list('dream')
>>> a.pop(0)
'd'
>>> a
['r', 'e', 'a', 'm']
>>> a[0]='d'
>>> a
['d', 'e', 'a', 'm']
>>> a[1:3]=['d']
>>> a
['d', 'd', 'm'] #python不要求兩個列表的長度一樣,但遵循“多增少減”的原則,這樣,可以通過賦給更多或更少元素實現對列表元素的插入和刪除
>>> for s in a:
print(s,end="")
ddm #與元組一樣,列表可以通過for-in語句對其元素進行遍歷
3. 小結
上文講述的是元組與列表,關於字典和集合,將在下一篇文章詳細介紹