序列(包括字串,元組,列表型別)
序列是一維元素所組成的向量,元素的型別可以不同
序列指的是一塊可以存放多個值的連續記憶體空間,可以通過每個值所在位置的編號(索引)來進行訪問,類似於數學中的序列:\(s_,s_,s_,s_,......s_\)
序列型別包括字串、列表、元組、集合和字典,這些序列支援以下幾種通用的操作,但比較特殊的是,集合和字典不支援索引、切片、相加和相乘操作
序列索引
索引值(序號)可以為正數也可以為負數
序列型別的通用操作符
操作符作用
x in s
若x是s中的元素,返回true,否則返回false
x not in s
若x是s中的元素,返回false,否則返回true
s + t
連線s和t兩個序列
s * n 或者 n * s
將序列s複製n次
s[i]
返回s中的第i個元素
len(s)
返回序列s的長度
min(s)
s中元素可比較時,返回序列s的最小值
max(s)
s中元素可比較時,返回序列s的最大值
s.index(x)
返回序列s中第一次出現元素x的位置
s.index(x,i,j)
返回序列s中從i到j位置中第一次出現元素x的位置
s.count(x)
返回序列s**現x的總次數
序列切片
切片操作是訪問序列中元素的另一種方法,它可以訪問一定範圍內的元素,通過切片操作,可以生成乙個新的序列。
序列實現切片操作的語法格式如下:
序列名稱[索引開始位置 : 索引結束位置 : 步長]
開始索引位置(包括該位置),此引數也可以不指定,會預設為 0,也就是從序列的開頭進行切片;
結束索引位置(不包括該位置),如果不指定,則預設為序列的長度;
步長表示在切片過程中,隔幾個儲存位置(包含當前位置)取一次元素;
如果省略設定 步長的值,則最後乙個冒號就可以省略。
序列切片:
str="abcdef"
#取索引區間為[0,2]之間(不包括索引2處的字元)的字串
print(str[:2])
#隔 1 個字元取乙個字元,區間是整個字串
print(str[::2])
#取整個字串,此時 中只需乙個冒號即可
print(str[:])
#逆向索引
print(str[::-1])
元組元組是一種序列型別,一旦建立就不能被修改
元組的建立
可以使用小括號(),或者tuple()建立,也可以不使用小括號,元素之間用逗號,分隔
元組型別繼承了序列型別的全部通用操作
元組型別建立之後就不能修改,因此沒有特殊操作
#元組型別的建立
c1="abc","def","ghi"
c1('abc', 'def', 'ghi')
c2=(123,0x001100,"jkl",c1)
c2(123, 4352, 'jkl', ('abc', 'def', 'ghi'))
#元組型別的操作
c3="abc","def","ghi"
c4=c3[::-1]
c4('ghi', 'def', 'abc')
c5=(123,0x001100,"jkl",c3)
c5(123, 4352, 'jkl', ('abc', 'def', 'ghi'))
c5[-1]
('abc', 'def', 'ghi')
c5[-1][2]
'ghi'
列表型別
列表型別是一種序列型別,建立後可以被隨意修改
列表型別使用方括號[ ]或者list()建立,元素之間用逗號分隔
列表型別各個元素之間型別可以不同,沒有長度限制
#列表型別的定義
ls=["cat","dog","tiger",1024]
ls['cat', 'dog', 'tiger', 1024]
lt=ls
lt['cat', 'dog', 'tiger', 1024]
#在建立乙個列表時,使用方括號或者list()來建立時,才是真正的建立了乙個列表,如上面的ls
#如果僅僅是使用賦值,而沒有使用方括號或者list(),那麼就只是將乙個列表賦給了乙個新的名字,如 #上面的lt
列表型別的操作函式和方法
函式和方法
作用ls[i]=x
替換列表ls第i元素為x
ls[i:j:k]=lt
用列表lt替換ls切片後所形成的對應元素組成的子列表
del ls[i]
刪除列表中第i元素
del ls[i:j:k]
刪除列表ls中從第i到第j以步長k所選中的元素
ls+=lt或者·ls=ls+lt
將列表lt中的元素增加到列表ls中
ls*=lt
將列表ls元素重複複製n次
ls=["cat","dog","tiger",1024]
ls[1:2]=[1,2,3,4] #用1,2,3,4替換ls中的第乙個元素
ls['cat', 1, 2, 3, 4, 'tiger', 1024]
del ls[::3] #以步長為3刪除元素
ls[1, 2, 4, 'tiger']
ls*2
[1, 2, 4, 'tiger', 1, 2, 4, 'tiger']
函式或者方法
作用以及描述
在列表ls最後增加乙個元素
ls.clear()
刪除列表ls中的所有元素
ls.copy()
生成乙個新列表,複製ls中的所有元素
ls.insert(i,x)
在列表ls的第i位置增加元素x
ls.pop(i)
取出列表ls的第i位置元素並刪除
ls.remove(x)
刪除列表ls中的第乙個元素
ls.reverse()
將列表ls中的元素反轉
#列表型別的操作
ls=["cat","dog","tiger",1024]
ls['cat', 'dog', 'tiger', 1024]
ls['cat', 'dog', 'tiger', 1024, 1234]
ls.insert(3,"human")
ls['cat', 'dog', 'tiger', 'human', 1024, 1234]
ls.reverse()
ls[1234, 1024, 'human', 'tiger', 'dog', 'cat']
序列型別的操作舉例:
#列表功能
#定義乙個空的列表
lt=#向列表中增加5個元素
lt+=[1,2,3,4,5]
lt[1, 2, 3, 4, 5]
#修改列表中的第2個元素
lt[2]=6
lt[1, 2, 6, 4, 5]
#向lt中的第2位置增加乙個元素
lt.insert(2,7)
lt[1, 2, 7, 6, 4, 5]
#刪除列表中第1個位置的元素
del lt[1]
lt[1, 7, 6, 4, 5]
#刪除列表中第1~3位置的元素
del lt[1:4]
lt[1, 5]
#判斷列表中是否包含數字0
0 in lt
false
#向lt中新增數字0
lt[1, 5, 0]
#返回數字0在lt中的索引
lt.index(0)
#返回lt的長度
len(lt)
#返回lt中的最大元素
max(lt)
#清空lt
lt.clear()
lt序列型別的應用:
元素遍歷:
#元素遍歷
for item in ls:
資料保護:
將不希望被程式所改變的資料轉換成元組型別
#資料保護
ls=["cat","dog","tiger",1024]
lt=tuple(ls)
lt('cat', 'dog', 'tiger', 1024)
序列中是否包含指定元素
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...
python中建立類role 初識Python類
吐槽 學習物件導向就像你追乙個女神一樣,剛剛有點感覺了,過幾天又陷入絕望的感覺,很蛋疼。類的語法 classperson object print learning class test person test就是類person的例項化物件 例項化,就是以person類為模板,在記憶體裡開闢一塊空間...
在python中輸出 在輸出中列印Python版本
如何從指令碼中列印當前python安裝的版本號?嘗試import sys print sys.version 這將列印完整的版本資訊字串。如果您只想要python版本號,那麼bastien l onard的解決方案是最好的。您可能想檢查完整的字串,看看是否需要它或它的一部分。import platf...