Python序列方法整理


序列通用操作:

  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]

 

 

    

  

 

    

    

 ,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM