資料類型:清單
python中的資料可以分為下面四個類型
- 集合:幾何中的元素無需、不可變。
- 數字:整數、浮點數、負數、複數等,支援各種算術運算。
- 序列:字元串、清單和元組都屬于序列,支援索引、分片和合并等操作。
- 映射:字典,将減映射到值。
清單基本特點
清單常量用方括号表示,例如:[1,2,'abc']。清單對象是一種有序序列,其主要特點如下。
- 清單可以包含任意類型的對象:數字、字元串、清單、元組或其他對象。
- 清單是一個有序序列。與字元串類似,清單中的每一項按照從左到右的順序,可通過位置偏移量進行索引和分片。
- 清單是可變的。首先清單長度可變,即可添加或删除清單成員。其次,清單中的對象可直接修改。
- 清單存儲的是對象的引用,類似于C/C++的指針數組。每個清單成員存儲的是對象的引用,而不是對象本身。
清單基本操作
清單基本操作包括建立清單、求長度、合并、重複、疊代、關系判斷、索引、分片和矩陣等。
1.建立清單
清單對象可以用清單常量或list()函數來建立。例如:
>>> [] #建立一個空的清單對象
[]
>>> list() #建立一個空的清單對象
[]
>>> [1,2,3] #用同類型資料建立清單對象
[1, 2, 3]
>>> [1,2,('a','abc'),[12,34]] #用不同類型資料建立清單對象
[1, 2, ('a', 'abc'), [12, 34]]
>>> list('abcd') #用可疊代對象建立清單對象
['a', 'b', 'c', 'd']
>>> list(range(-2,3)) #用連續整數建立清單對象
[-2, -1, 0, 1, 2]
>>> list((1,2,3)) #用元組建立清單對象
[1, 2, 3]
>>> list(x+10 for x in range(5))#用解析結建構立清單對象
[10, 11, 12, 13, 14]
>>>
2.求長度
用len()函數擷取清單長度。例如:
>>> len([])
0
>>> len([1,2,('a','abc'),[12,34]])
4
>>>
3.合并
加法運算可用于合并清單。例如:
>>> [1,2]+['abc',20]
[1, 2, 'abc', 20]
>>> [1,2]+[20,'abc'] #有序
[1, 2, 20, 'abc']
>>>
4.重複
乘法運算可用于建立具有重複值的清單。例如:
>>> [1,2]*3
[1, 2, 1, 2, 1, 2]
>>>
5.疊代
疊代操作可用于便利清單中的對象。例如:
>>> x=[1,2,('a','abc'),[12,34]]
>>> for a in x:print(a)
...
1
2
('a', 'abc')
[12, 34]
>>>
6.關系判斷
可用in操作符判斷對象是否屬于清單。清單:
>>> 2 in[1,2,3]
True
>>> 'a' in [1,2,3]
False
>>>
7.索引
清單與字元串類似,可通過對象在清單中的位置來索引。清單對象也可通過索引進行修改。例如:
>>> x=[1,2,['a','b']]
>>> x[0] #輸出第1個清單對象
1
>>> x[1]
2
>>> x[2]
['a', 'b']
>>> x[-1] #用負數從來清單末尾開始索引
['a', 'b']
>>> x[2]=100 #修改第3個清單對象
>>> x
[1, 2, 100]
>>>
8.分片
與字元串類似,可通過分片來獲得清單中的部分對象。也可通過分片将多個對象替換成新的對象。例如:
>>> x=list(range(10)) #建立清單對象
>>> x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[2:5] #傳回分片清單
[2, 3, 4]
>>> x[2:] #省略分片結束位置時,分片直到清單結束
[2, 3, 4, 5, 6, 7, 8, 9]
>>> x[:5] #省略分片開始位置時,分片從第一個對象開始
[0, 1, 2, 3, 4]
>>> x[2:7:2] #指定分片時偏移量步長
[2, 4, 6]
>>> x[7:2:-2] #步長為負數時,按相反順序獲得對象
[7, 5, 3]
>>> x[2:5]='abc' #通過分片替換多個對象
>>> x
[0, 1, 'a', 'b', 'c', 5, 6, 7, 8, 9]
>>> x[2:5]=[10,20] #通過分片替換多個對象
>>> x
[0, 1, 10, 20, 5, 6, 7, 8, 9]
>>>
9.矩陣
清單中的對象可以是任意類型,是以可通過嵌套清單表示矩陣。例如
>>> x=[[1,2,3],[4,5,6],[7,8,9]]
>>> x[0] #用一個位置資訊索引嵌套的字清單
[1, 2, 3]
>>> x[0][0] #用兩個位置資訊索引字清單包含的對象
1
>>>
常用清單方法
>>> x=[1,2]
>>> x.append('abc') #末尾添加一個對象
>>> x
[1, 2, 'abc']
>>>
>>>#下面是用extend()方法用于在清單末尾添加多個對象,參數為可疊代對象
>>> x=[1,2]
>>> x.extend(['a','b']) #用清單對象做參數
>>> x
[1, 2, 'a', 'b']
>>> x.append('abc') #用字元串做參數時,字元串作為一個對象
>>> x
[1, 2, 'a', 'b', 'abc']
>>>
>>>#insert方法用于在指定位置插入對象
>>> x=[1,2,3]
>>> x.insert(1,'abc')
>>> x
[1, 'abc', 2, 3]
>>>
>>>#按值删除對象,remove方法用于删除清單中指定值,如果有重複,則删除第一個
>>> x=[1,2,3]
>>> x.remove(2)
>>> x
[1, 3]
>>>
>>>#pop方法可按指定位置删除對象,省略位置時删除對象清單一個對象。删除時傳回該對象
>>> x=[1,2,3,4]
>>> x.pop()
4
>>> x
[1, 2, 3]
>>> x.pop(1)
2
>>> x
[1, 3]
>>>
>>>#del語句删除清單中的指定對象或分片
>>> x=[1,2,3,4,5,6]
>>> del x[0]
>>> x
[2, 3, 4, 5, 6]
>>> del x[2:4]
>>> x
[2, 3, 6]
>>>
>>>#clear删除全部對象
>>> x=[1,2,3]
>>> x.clear()
>>> x
[]
>>>
>>>#copy複制清單對象
>>> x=[1,2,3]
>>> y=x.copy()
>>> y
[1, 2, 3]
>>>
>>>#sort方法可将清單中的對象排序。若全部是數字,則從小到大。,若清單對象全是字元串,則按字典順序排序。若清單包含多種類型,則會出錯。
>>> x=[10,2,30,5]
>>> x.sort()
>>> x
[2, 5, 10, 30]
>>> x=['bbc','abc','BBC','Abc']
>>> x.sort()
>>> x
['Abc', 'BBC', 'abc', 'bbc']
>>> x=[1,5,3,'bbc','abc','BBC']
>>> x.sort()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
>>>
>>>#reverse方法将清單中對象的位置翻轉。
>>> x=[1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]
>>>