什麼是序列
序列指的是一塊可存放多個值的連續記憶體空間,這些值按一定順序排列,可以通過下標或者索引訪問它們。
python中三種基本的序列型別:
字串列表
列表由一系列按特定順序排列的元素組成。是python最常見的資料結構,用來表示列表
例如:arr = [1,2,3,4,5]
元組python 的元組與列表類似,不同之處在於元組的元素不能修改。
元組使用小括號,列表使用方括號。
元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。
tup1 = (1,2,3,4,5)
序列的相關操作
序列索引
字串s = "123"
print(s[0]) # 1
print(s[1]) # 2
print(s[4]) # indexerror: string index out of range
列表list = [1, 2, 3, 4]
print(list[0])
print(list[1])
print(list[5]) # indexerror: list index out of range
元組tuple = (1, 2, 3, 4)
print(tuple[0])
print(tuple[2])
print(tuple[5]) # indexerror: tuple index out of range
注意點:
索引從0開始而不是1.
訪問負數索引。 -1訪問到的是序列倒數第乙個元素,-2訪問到的是序列倒數第二個元素
print("演示負數索引")
print(s[-1])
print(s[-2])
# print(s[-4]) # indexerror: string index out of range
print(list[-1])
print(list[-2])
# print(list[-5]) # indexerror: list index out of range
print(tuple[-1])
print(tuple[-2])
# print(tuple[-5]) # indexerror: tuple index out of range
output
演示負數索引
不管訪問的是整數索引還是負數索引,都不能越界。
序列拼接
支援兩種型別相同的序列使用「+」運算子做相加操作,它會將兩個序列進行連線,但不會去除重複的元素。
這裡所說的「型別相同」,指的是「+」運算子的兩側序列要麼都是列表型別,要麼都是元組型別,要麼都是字串。
print(str + list) # can only concatenate str (not "list") to str
序列重複
使用數字 n 乘以乙個序列會生成新的序列,其內容為原來序列被重複 n 次的結果。比較特殊的是,列表型別在進行乘法運算時,還可以實現初始化指定長度列表的功能。例如如下的**,將建立乙個長度為 5 的列表,列表中的每個元素都是 none,表示什麼都沒有。
str = "shawn"
print(str*3) # shawnshawnshawn
序列切片
切片操作是訪問序列中元素的另一種方法,它可以訪問一定範圍內的元素,通過切片操作,可以生成乙個新的序列。
序列實現切片操作的語法格式如下:
sname[start : end : step]
其中,各個引數的含義分別是:
sname:表示序列的名稱;
start:表示切片的開始索引位置(包括該位置),此引數也可以不指定,會預設為 0,也就是從序列的開頭進行切片;
end:表示切片的結束索引位置(不包括該位置),如果不指定,則預設為序列的長度;
step:表示在切片過程中,隔幾個儲存位置(包含當前位置)取一次元素,也就是說,如果 step 的值大於 1,則在進行切片去序列元素時,會「跳躍式」的取元素。如果省略設定 step 的值,則最後乙個冒號就可以省略。
str = "shawn"
print(str[0:2]) # 左閉右開 結果sh
print(str[::2]) # 從0開始,每隔2步取元素,san,包括0
序列成員
可以使用 in或者not in 關鍵字檢查某元素是否為序列的成員
str = "shawn"
print("s" in str) # true
print("s" not in str) # false
內建的序列函式
函式功能
len()
計算序列的長度,即返回序列中包含多少個元素。
max()
找出序列中的最大元素。注意,對序列使用 sum() 函式時,做加和操作的必須都是數字,不能是字元或字串,否則該函式將丟擲異常,因為直譯器無法判定是要做連線操作(+ 運算子可以連線兩個序列),還是做加和操作。
min()
找出序列中的最小元素。
list()
將序列轉換為列表。
str()
將序列轉換為字串。
sum()
計算元素和。
sorted()
對元素進行排序。
reversed()
反向序列中的元素。
enumerate()
將序列組合為乙個索引序列,多用在 for 迴圈中。
python演算法題 鍊錶反轉詳解 python
鍊錶的反轉是乙個很常見 很基礎的資料結構題,輸入乙個單向鍊錶,輸出逆序反轉後的鍊錶,如圖 上面的鍊錶轉換成下面的鍊錶。實現鍊錶反轉有兩種方式,一種是迴圈迭代,另外一種方式是遞迴。第一種方式 循壞迭代 循壞迭代演算法需要三個臨時變數 pre head next,臨界條件是鍊錶為none或者鍊錶就只有乙...
詳解 Python 中的序列
目錄 3.1 索引 3.2 分片 3.3 序列相加 3.4 序列相乘 3.5 成員資格 3.6 長度 最小值 最大值 序列 sequence 是 個包含其他物件的有序集合,序列中的元素包含了 個從左到右的順序,可以根據元素所在的位置進 儲存和讀取。python 中內建了 6 種序列,分別是列表 元組...
pytho序列,字串,元組 學習筆記
python string.zfill 方法 函式 墊零左側的字串,以填補寬度。python 序列操作 seq ind 獲得下標為 ind 的元素 seq ind1 ind2 獲得下標從 ind1 到 ind2 間的元素集合 seq expr 序列重複 expr 次 seq1 seq2 連線序列 s...