天天看點

Python資料類型:清單 資料類型:清單 清單基本操作

資料類型:清單

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]
>>>