序列通用操作:
1、判斷數據是否存在與欲裂中: x(元素) in s(序列) || x(元素) not in s(序列)
>>> num=[1,2,3,4,'tom','jack','marry'] >>> 'tom' in num True >>> 'marry' not in num False
2、連接序列 : s1(序列)+s2(序列)
>>> num1=[1,2,3,4] >>> num2=['tom','marry','jack'] >>> num1+num2 [1, 2, 3, 4, 'tom', 'marry', 'jack']
3、重復序列元素:[num]*3
>>> [3]*4 [3, 3, 3, 3] >>> num1=[1,2,3,4] >>> num1*2 [1, 2, 3, 4, 1, 2, 3, 4]
4、通過下表獲取元素:s[ i ]
>>> num=['marry','jom','doudou','jiangjiang'] >>> num[2] 'doudou' >>> num[1] 'jom'
>>> num[-1]
'jiangjiang' //角標為-1的是最后一個元素
5、訪問指定索引范圍元素:s [ i : j ] //訪問角標以 i 開始,j 結束的元素 (注意:包頭不包尾,即不包括元素 s[j] )
>>> num=['marry','jom','doudou','jiangjiang',1,2,3] >>> num[3:7] ['jiangjiang', 1, 2, 3] //此處即不包括元素num[7]元素
6、按步長訪問指定索引范圍:s [ i : j : k ] //訪問角標以 i 開始,j 結束的元素,中間跳過 k -1 個元素
>>> num=['marry','jom','doudou','jiangjiang',1,2,3] >>> num[3:7] ['jiangjiang', 1, 2, 3] >>> num[3:7:2] //每獲取一個元素,跳過2-1個元素 ['jiangjiang', 2] >>> num[3:7:3] ['jiangjiang', 3] //每獲取一個元素,跳過3-1個元素
7、獲取序列的長度: len(s)
>>> num=['marry','jom','doudou','jiangjiang',1,2,3] >>> len(num) 7
8、獲取序列的最小或最大值 :max(s) || min(s)
>>> num=[33,44,55,66,111,33] >>> max(num) 111 >>> min(num) 33 >>> num2=['q','w','e','r','f','a'] >>> max(num2) 'w' >>> min(num2) 'a'
9、統計序列的總和:sum(s)
>>> num1=[1,2,3,4,5,6] >>> sum(num1) 21
10、檢索某一元素第一次出現的下標: s.index(x) //s為序列,x為要查詢元素
>>> num=['marry','bob','marry','jack','tom','shark','eye'] >>> num.index('marry') //檢索第一次出現的位置 0 >>> num.index('shark') 5
11、統計某一元素在序列中出現的次數: s.count(x) //s為序列,x為要查詢元素
>>> num=['marry','bob','marry','jack','tom','shark','eye'] >>> num.count('marry') 2 >>> num.count('eye') 1
以上所有Python序列都支持。
可變序列通用操作
1、增加序列中的元素
s.insert(n,obj) //在角標為n的位置插入對象obj
>>> num=['marry','bob','jack'] >>> num.insert(2,'zhangsan') >>> num ['marry', 'bob', 'zhangsan', 'jack'] >>> num.insert(2,['lisi','wangwu']) >>> num ['marry', 'bob', ['lisi', 'wangwu'], 'zhangsan', 'jack']
s.append(obj) //把括號中元素作為一個對象加入
>>> num=['marry','bob','jack'] >>> num.append([1,2,3]) >>> num ['marry', 'bob', 'jack', [1, 2, 3]] >>> num.append('tiger') >>> num ['marry', 'bob', 'jack', [1, 2, 3], 'tiger']
s.extend(obj) //把obj這個對象中的元素加入s序列中
>>> num=['marry','bob','jack'] >>> num2=[1,2,3] >>> num.extend(num2) >>> num ['marry', 'bob', 'jack', 1, 2, 3]
2、刪除元素
del s [ i ] //刪除序列元素中角標為i的元素
>>> num=['marry','bob','jack'] >>> del num[0] >>> num ['bob', 'jack'] >>> del num[-1] >>> num ['bob']
del s[m:n:k] //刪除為角標 m到n的元素,包頭不包尾,每刪除一個元素跳過k-1個元素
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> del num[0:-1:2] >>> num ['bob', 'zhangsan', 'wangwu']
s[m:n]=[] //刪除序列角標為m到n-1
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> num[2:5]=[] >>> num ['marry', 'bob', 'wangwu']
s.pop(n) //返回並刪除角標為n的元素,不寫角標默認刪除並彈回最后一個元素。角標越界報異常
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> num.pop() 'wangwu' >>> num ['marry', 'bob', 'jack', 'zhangsan', 'lisi'] >>> num.pop(0) 'marry' >>> num ['bob', 'jack', 'zhangsan', 'lisi']
s.remove(obj) //在序列中刪除obj這個元素,若元素不存在,則拋異常
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> num.remove('marry') >>> num ['bob', 'jack', 'zhangsan', 'lisi', 'wangwu'] >>> num.remove('liubei') //序列中沒有‘liubei’ ,拋異常 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list
s.clear() //刪除序列中的所有元素
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> num ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'wangwu'] >>> num.clear() >>> num []
3、修改序列元素
s[i]=x //序列中角標為i的元素賦值為x
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> num ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'wangwu'] >>> num[-1]='liubei' >>> num ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'liubei'] >>> num[-3]='guanyu' >>> num ['marry', 'bob', 'jack', 'guanyu', 'lisi', 'liubei']
s[n:m]=t //將s序列中角標從n到m-1 的元素替換成t序列的元素
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> num ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'wangwu'] >>> num[1:3]=[11,12,13,14,15,16] >>> num ['marry', 11, 12, 13, 14, 15, 16, 'zhangsan', 'lisi', 'wangwu'] >>> num[:]=['q','w','e','r','t','y','u','i'] //整體全部替換 >>> num ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i']
s[n:m:k]=t //將s序列中角標從n到m-1 的元素替換成t序列的元素,每替換一個元素跳過k-1個元素,切記t序列元素的個數必須和被替換的元素個數相等
>>> num=['marry','bob','jack','zhangsan','lisi','wangwu'] >>> num[2:5:2]=['hello','world'] >>> num ['marry', 'bob', 'hello', 'zhangsan', 'world', 'wangwu'] >>> num[2:5:2]=['hello','world','kkkkk'] //此時替換的序列多了一個元素,拋異常 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: attempt to assign sequence of size 3 to extended slice of size 2
4、元素排序翻轉
s.reverse() //元素內部順序顛倒
>>> num=[1,2,3,4,5,6,7,8] >>> num [1, 2, 3, 4, 5, 6, 7, 8] >>> num.reverse() >>> num [8, 7, 6, 5, 4, 3, 2, 1] >>> print(num.reverse()) //只在內部翻轉,並不返回什么 None
5、賦值序列內部元素
new=old.copy() //講old序列中的元素復制的new序列上
>>> num=['kk','ff','jj','gg'] >>> num1=num.copy() >>> num1 ['kk', 'ff', 'jj', 'gg'] >>> num1[2]=3 >>> num1 ['kk', 'ff', 3, 'gg'] >>> num ['kk', 'ff', 'jj', 'gg']
new=old[:] //講old序列中的元素復制的new序列上
>>> num=['kk','ff','jj','gg'] >>> num1=num[:] >>> num ['kk', 'ff', 'jj', 'gg'] >>> num1 ['kk', 'ff', 'jj', 'gg'] >>> num1[2]='tom' >>> num1 ['kk', 'ff', 'tom', 'gg'] >>> num ['kk', 'ff', 'jj', 'gg']
old=new //此種方法復制元素和上面兩種復制有很大的不同,old與new二者共享引用,其實質任然指向同一個內存地址,無論哪一個序列發生改變,另一個會發生相同改變。
>>> num=['kk','ff','jj','gg'] >>> num1=num >>> num1 ['kk', 'ff', 'jj', 'gg'] >>> num1[2]='hello' >>> num1 ['kk', 'ff', 'hello', 'gg'] >>> num ['kk', 'ff', 'hello', 'gg']
7、排序
s.sort() //內部排序,無返回
>>> num=[5,44,332,54,24,5325] >>> num.sort() >>> num [5, 24, 44, 54, 332, 5325]
sorted(s) //返回排序后的序列
>>> num=[5,44,332,54,24,5325] >>> num2=sorted(num) >>> num2 [5, 24, 44, 54, 332, 5325]
,