Python列表和元組

數據結構是以某種方式(如通過編號)組合起來的數據元素(如數、字符乃至其他數據結構)集合。在Python中,最基本的數據結構爲序列(sequence)。序列中的每個元素都有編號,即其位置或索引,其中第一個元素的索引爲0,第二個元素的索引爲1,依此類推。

1. 序列概述

Python內置了多種序列,本章重點討論其中最常用的兩種: 列表和元組。另一種重要的序列是字符串,列表和元組的主要不同在於,列表是可以修改的,而元組不可以。

2. 通用序列操作

有幾種操作適用於所有序列,包括索引、 切片、 相加、 相乘和成員資格檢查。

操作 描述 舉例
索引(indexing) 序列中所有元素都有編號---從0開始遞增,負數索引表示從右開始往左數,-1代表最後一個元素

>>>greeting = 'Hello'

>>>greeting[0]

'H'

>>>greeting[-1]

'o'

切片(slicing) 切片適用於提取序列的一部分,其中的編號非常重要:第一個索引是包含的第一個元素的編號,但第二個索引是切片後餘下的第一個元素的編號。此外切片還能指定步長:[起始索引:結束索引:步長]。
 

>>>url = 'www.python.com'

>>>print( url[4:-4])

>>>python

 

相加 可使用加法運算符來拼接序列。一般而言,不能拼接不同類型的序列。

>>>[1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

>>>'Hello,' + 'world!'

'Hello,world!'

相乘 將序列與數x相乘時,將重複這個序列x次來創建一個新序列。Python中,None表示空,因此可以初始化空序列,sequence = [None] * 10

>>>[26] * 5

[26, 26, 26, 26, 26]

>>>'Hi' * 5

'HiHiHi'

成員資格 要檢查特定的值是否包含在序列中,可使用運算符in。該運算符屬於布爾運算符,滿足時返回True,不滿足時返回False。 >>> permissions = 'rw'
>>> 'w' in permissions
True
內置函數 內置函數len、 min和max很有用。

>>> numbers = [100, 34, 678]
>>> len(numbers)
3
>>> max(numbers)
678
>>> min(numbers)

34

3. 基本列表操作

可對列表執行所有的標準序列操作,如索引、切片、拼接和相乘,但列表的有趣之處在於它是可以修改的。本節將介紹一些修改列表的方式:給元素賦值、刪除元素、給切片賦值以及使用列表的方法。(請注意,並非所有列表方法都會修改列表。)

函數 描述 舉例
list 鑑於不能像修改列表那樣修改字符串,因此在有些情況下使用字符串來創建列表可使用函數list。要將字符列表轉換爲字符串,可以使用''.join()函數。

>>> somelist = list('Hello')
['H', 'e', 'l', 'l', 'o']

>>> ''.join(somelist)

'Hello'

修改列表 可使用索引來修改列表的元素。

>>> x = [1, 1, 1]

>>> x[1] = 2

>>> x

[1, 2, 1]

del 從列表中刪除元素。 >>> names = ['Alice', 'Beth']
>>> del names[1]
>>> names
['Alice']
 
append append用於將一個對象附加到列表末尾。 >>> lst = [1, 2, 3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
clear 方法clear就地清空列表的內容。 >>> lst = [1, 2, 3]
>>> lst.clear()
>>> lst
[]
copy 方法 copy 複製列表。 >>> a = [1, 2, 3]
>>> b = a.copy()
>>> b[1] = 4
[1, 4, 3]
count 方法count計算指定的元素在列表中出現了多少次。 >>> ['to', 'be', 'or', 'not', 'to', 'be'].count('to')
2
extend 方法extend讓你能夠同時將多個值附加到列表末尾,該方法類似於拼接,但是沒有創建新的列表,而是在原有的列表裏附加。 >>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
index 方法index在列表中查找指定值第一次出現的索引。 >>> knights = ['We', 'are', 'the', 'knights', 'who', 'say', 'ni']
>>> knights.index('who')
4
insert    
pop    
remove    
reverse    
sort    


 

 

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