W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在編程語言中,將以某種方式(比如通過編號)組合起來的數(shù)據(jù)元素(如數(shù)字,字符串乃至其他數(shù)據(jù)結(jié)構(gòu))集合稱為數(shù)據(jù)結(jié)構(gòu)。在python中,最基本的數(shù)據(jù)結(jié)構(gòu)為序列(sequence,簡寫為seq)。
所謂序列,指的是一塊可存放多個值的連續(xù)內(nèi)存空間,這些值按一定順序排列,可通過每個值所在位置的編號(稱為索引)訪問它們。
為了更形象的認識序列,可以將它看做是一家旅店,那么店中的每個房間就如同序列存儲數(shù)據(jù)的一個個內(nèi)存空間,每個房間所特有的房間號就相當于索引值。也就是說,通過房間號(索引)我們可以找到這家旅店(序列)中的每個房間(內(nèi)存空間)。
在 Python 中,??序列類型包括字符串、列表、元組、集合和字典??,這些序列支持以下幾種通用的操作,但比較特殊的是,集合和字典不支持索引、切片、相加和相乘操作。
字符串也是一種常見的序列(所以以下的例子以字符串作為),它也可以直接通過索引訪問字符串內(nèi)的字符。
序列索引值示意圖
負值索引示意圖
注意,在使用負值作為列序中各元素的索引值時,是從 -1 開始,而不是從 0 開始。
另一種理解方式是:將序列想象成如下方的一個環(huán):紅色值為元素,綠色值為正索引,藍色值為負索引可以發(fā)現(xiàn)序列的最后一個元素和第一個元素剛好相鄰,方向與正索引的方向剛好相反,所以其負索引值是-1,。該序列有8個元素,所以最后一個負索引(也就是第一個元素)是-8,剛好等于該序列的長度的負值。
無論是采用正索引值,還是負索引值,都可以訪問序列中的任何元素。以字符串為例,訪問“W3Cschool”的首元素和尾元素,可以使用如下的代碼:
str="W3Cschool"
print(str[0],"==",str[-9])
print(str[8],"==",str[-1])
輸出結(jié)果為:
W == W
l == l
切片操作是訪問序列中元素的另一種方法,它可以訪問一定范圍內(nèi)的元素,通過切片操作,可以生成一個新的序列。
序列實現(xiàn)切片操作的語法格式如下:
sname[start : end : step]
其中,各個參數(shù)的含義分別是:
例如,對字符串“W3Cschool”進行切片:
str="W3Cschool"
#取索引區(qū)間為[0,2]之間(不包括索引2處的字符)的字符串
print(str[:2])
#隔 1 個字符取一個字符,區(qū)間是整個字符串
print(str[::2])
#取整個字符串,此時 [] 中只需一個冒號即可
print(str[:])
運行結(jié)果為:
W3
WCcol
W3Cschool
Python 中,支持兩種類型相同的序列使用“+”運算符做相加操作,它會將兩個序列進行連接,但不會去除重復的元素。
這里所說的“類型相同”,指的是“+”運算符的兩側(cè)序列要么都是列表類型,要么都是元組類型,要么都是字符串。
例如,前面章節(jié)中我們已經(jīng)實現(xiàn)用“+”運算符連接 2 個(甚至多個)字符串,如下所示:
protocol = "https://"
url = "hgci.cn"
print(protocol+url)
輸出結(jié)果為:
http://hgci.cn
Python 中,使用數(shù)字 n 乘以一個序列會生成新的序列,其內(nèi)容為原來序列被重復 n 次的結(jié)果。例如:
str="W3Cschool"
print(str*3)
輸出結(jié)果為:
W3CschoolW3CschoolW3Cschool
比較特殊的是,列表類型在進行乘法運算時,還可以實現(xiàn)初始化指定長度列表的功能。例如如下的代碼,將創(chuàng)建一個長度為 5 的列表,列表中的每個元素都是 None,表示什么都沒有。
#列表的創(chuàng)建用 [],可以指定長度
list = [None]*5
print(list)
輸出結(jié)果為:
[None, None, None, None, None]
Python 中,可以使用 in 關鍵字檢查某元素是否為序列的成員,其語法格式為:
value in sequence?
其中,value 表示要檢查的元素,sequence 表示指定的序列。
例如,檢查字符‘C’是否包含在字符串“W3Cschool”中,可以執(zhí)行如下代碼:
str="W3Cschool"
print('C'in str)
運行結(jié)果為:
True
和 in 關鍵字用法相同,但功能恰好相反的,還有 not in 關鍵字,它用來檢查某個元素是否不包含在指定的序列中,比如說:
str="W3Cschool"
print('A' not in str)
輸出結(jié)果為:
True
Python提供了幾個內(nèi)置函數(shù)(表 3 所示),可用于實現(xiàn)與序列相關的一些常用操作。
函數(shù) | 功能 |
---|---|
len() | 計算序列的長度,即返回序列中包含多少個元素。 |
max() | 找出序列中的最大元素。注意,對序列使用 sum() 函數(shù)時,做加和操作的必須都是數(shù)字,不能是字符或字符串,否則該函數(shù)將拋出異常,因為解釋器無法判定是要做連接操作(+ 運算符可以連接兩個序列),還是做加和操作。 |
min() | 找出序列中的最小元素。 |
list() | 將序列轉(zhuǎn)換為列表。 |
str() | 將序列轉(zhuǎn)換為字符串。 |
sum() | 計算元素和。 |
sorted() | 對元素進行排序。 |
reversed() | 反向序列中的元素。 |
enumerate() | 將序列組合為一個索引序列,多用在 for 循環(huán)中。 |
部分序列不能應用其中的部分函數(shù),比如字典中不能直接使用list,詳細的函數(shù)介紹請參閱相應數(shù)據(jù)類型的函數(shù)介紹。
這里給大家給幾個例子:
str="W3Cschool"
#找出最大的字符
print(max(str))
#找出最小的字符
print(min(str))
#對字符串中的元素進行排序
print(sorted(str))
輸出結(jié)果為:
s
3
['3', 'C', 'W', 'c', 'h', 'l', 'o', 'o', 's']
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: