Python基礎教程學習第二日:序列

序列

Python中最基本的數據結構是序列(sequence),其中最常用的兩種序列類型爲:列表和元祖。

列表和元組的主要區別在於,列表可以修改,元組不能。

序列操作:
1.索引,序列中所有元素都是有編號的——從0開始遞增,這些元素可以通過編號進行訪問。如果使用負數索引,Python會從右邊,也就是最後一個元素開始計數。可以直接對序列的返回結果進行所以操作。如:

>>> fourth = input('Year: ')[3]
Year: 2005
>>> fourth
'5'

2.分片,通過冒號隔開的兩個索引來訪問一定範圍內的元素,其中第一個索引的元素包含在分片內,第二個不包含。如果需要分片包含序列中第一個索引以後所有的元素,只需置空最後一個索引即可,同樣的如果需要包含第二個索引以前所有的元素,只要置空第一個所以即可,實際上如果需要複製整個序列,可以將兩個索引都置空。注意,只要分片中第一個索引比第二個索引晚出現在序列中,如number[-3:0],結果就是一個空的序列。
在分片中,可以指定步長,隱式的默認爲1,也可以顯式的指定,如果指定比1大,就會跳過序列中的某些元素,例如步長爲2的分片:numbers[0:10:2]。步長不能爲0,但是可以爲負數,此時分片從右到左提取元素,但是步長爲負數時,前面兩個索引號的順序也要顛倒過來,即number[10:0:-2]。
3.序列相加,可以通過使用加運算符對序列進行連接操作:’Hello’ + ‘world!’,但是相加的兩個序列,類型必須相同。
4.乘法,數字n乘以一個序列會生成一個新的序列,將原始序列重複n次。如果需要創建一個佔用10個元素空間,卻不包含任何有用內容的列表,可以使用None,sequence=[None]*10。

in運算符,檢查一個值是否在序列中,返回值爲bool型,True爲真,False爲假。

len返回序列中所包含的元素的數量,minmax分別返回序列中最小和最大的元素。

列表

列表是可變的。

list可以根據字符串創建列表。

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

列表:
1. 元素賦值。使用索引標記來爲特定位置的元素賦值。不能爲位置不存在的元素賦值。
2. 元素刪除。使用del語句刪除序列中特定索引標記的元素,刪除後,序列長度變短。
3. 分片賦值。使用序列的分片操作爲多個元素賦值,例如:name[2: ] = list(‘ar’)。賦值前後的元素序列可以不等長。分片賦值也可以爲列表插入新的元素,如:

>>> numbers = [1, 5]
>>> numbers[1:1] = [2, 3, 4]
>>> numbers
[1, 2, 3, 4, 5]

同樣的也可以爲列表刪除元素,numbers[1:4] = [ ]。
4. 列表方法。使用方式:對象.方法(參數)。
append,追加操作,lis.append(4),在lis的末尾追加一個新的對象4。
count,統計某個元素在列表中出現的次數。
extend,拓展列表,在一個列表的結尾一次性的追加另一個序列中的多個值,a.extend(b),相當於連接操作,但是修改了原始列表a。
index,在列表中找到某個元素第一個匹配項的索引位置。
insert,在列表的某個位置插入一個對象,numbers.insert(3, ‘four’)。
pop,移除列表中的一個元素(默認是最後一個,也可以指定),並且返回該元素的值,也是列表方法中,唯一有返回值的操作,相當於出棧操作。
remove,一處列表中某個元素的第一個匹配項。
reverse,將列表中的元素反向存放。
sort,在原位置對列表進行從小到大的排序,無返回值,從大到小排序的話,可以使用x.sort(reverse=True),用sorted的話可以返回列表,但是對原始列表不進行修改。

注意:複製列表用y = x[:],而不能用y = x,這樣x和y指向同一個列表了。

元組

元組,不能修改,用圓括號括起來,元素之間用逗號隔開,逗號很重要,一個數字加一個逗號就構成了一個長度爲1的元組。

>>> 3*(40 + 2)
126

>>> 3*(40 + 2,)
(42, 42, 42)

tuple和list的功能基本一樣,將一個序列轉換成元組。

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