Python中關於序列操作的執行個體代碼分享

來源:互聯網
上載者:User
這篇文章主要介紹了Python編程之序列操作,結合執行個體形式分析了Python序列的功能、相關函數與具體提示,需要的朋友可以參考下

本文執行個體講述了Python編程之序列操作。分享給大家供大家參考,具體如下:


#coding=utf8'''''序列類型有著相同的訪問模式:它的每一個元素可以通過指定一個位移量的方式得到。可以通過切片操作一次獲得多個元素。序列的下標位移量是從0開始到總元素數減一結束。標準類型操作符一般都能試用與所有的序列類型。序列類型操作符:---------------------------------------------------------------------------序列操作符            作用---------------------------------------------------------------------------seq[ind]            獲得下標為ind的元素seq[ind1:ind2]       獲得下標從ind1到ind2間的元素集合seq * expr          序列重複expr次seq1+seq2         串連序列seq1和seq2obj in seq         判斷obj元素是否包含在seq中obj not in seq      判斷obj元素是否不包含在seq中---------------------------------------------------------------------------切片操作符在Python中的原型是:[start:stop:step]即:[開始索引:結束索引:步長值]開始索引:同其它語言一樣,從0開始。序列從左向右方向中,第一個值的索引為0,最後一個為-1結束索引:切片操作符將取到該索引為止,不包含該索引的值。步長值:預設是一個接著一個切取,如果為2,則表示進行隔一取一操作。步長值為正時表示從左向右取,如果為負,則表示從右向左取。步長值不能為0。切片索引的文法比簡單的單一元素索引靈活的多。開始和結束索引值可以超過字串的長度。函數原型:range(start, end, scan):參數含義:start:計數從start開始。預設是從0開始。例如range(5)等價於range(0, 5);         end:計數到end結束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5        scan:每次跳躍的間距,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)序列類型轉換工廠函數:-----------------------------------------------------------------------------------------------------------------------函數                            含義-----------------------------------------------------------------------------------------------------------------------list(iter)                        把可迭代對象轉換為列表str(obj)                        把obj對象轉換成字串(對象的字串標記法)unicode(obj)                   把對象轉換成Unicode字串(使用預設編碼)basestring()                   抽象工廠函數,是str和unicode的父類,不能執行個體化不能調用tuple(iter)                     把一個可迭代對象轉換成一個元組對象-----------------------------------------------------------------------------------------------------------------------序列類型可用的內建函數:-----------------------------------------------------------------------------------------------------------------------函數名                         功能-----------------------------------------------------------------------------------------------------------------------enumerate(iter)                接受可迭代對象作為參數,返回一個enumerate對象,該對象產生                             由iter每個元素的index值和item值組成的元組。len(seq)                      返回seq的長度max(iter,key=None) ormax(arg0,arg1....,key=None)     返回iter或(arg0,arg1,...)中的最大值,如果指定key,key必須是                            一個可以傳給sort()方法的,用於比較的回呼函數min(iter,key=None) ormin(arg0,arg1....,key=None)     返回iter或(arg0,arg1,...)中的最小值,如果指定key,key必須是                            一個可以傳給sort()方法的,用於比較的回呼函數reversed(seq)                接受一個序列作為參數,返回一個以逆序訪問的迭代器sorted(iter,func=None,key=None,reverse=False)      接受一個可迭代對象作為參數,返回一個有序的列表;選擇性參數func,key                           和reverse的含義跟list.sort()內建函數的參數含義一樣。sum(seq,init=0)              返回seq和選擇性參數init的總和,其效果等同於reduce(operator.add,seq,init)zip([it0,it1,...itN])              返回一個列表,其第一個元素是it0,it1,...這些元素的第一個元素組成一個元組,                           第二個...類推-----------------------------------------------------------------------------------------------------------------------'''class sequenceClass(object):  def __init__(self):    '''''定義個整數序列表'''    self.intSeq=[1,2,5,8,95,456,236,458,95,62,63,64,77]    '''''定義個浮點數序列表'''    self.floatSeq=[0.33,2.56,45.23,45.33,46.789,23.00]    '''''定義個字串序列表'''    self.strSeq=["hello","double","floatNumer","ewang"]  #輸出初始化序列內容  def outInitData(self):    print "初始化整數序列表:",self.intSeq    print "初始化浮點數序列表:",self.floatSeq    print "初始化字串序列表:",self.strSeq  #使用序列類型操作符  def sequenceTypeOper(self):    #擷取序列中第幾個元素值,下表從0開始    print "整數列表第%d元素的值是%d " %(3,self.intSeq[2])    #擷取序列中第幾個到第幾個的之間元素的集合(從左向右)    print "浮點列表%d--%d之間元素列表:%r" %(1,5,self.floatSeq[1:5])    #倒數%d---%d之間的資料集合(從右向左)    print  "浮點列表%d--%d之間元素列表:%r" %(-1,-5,self.floatSeq[-5:-1])    #使用切片對序列逆序    print "輸出逆序的字串序列:",self.strSeq[::-1]    #使用切片擷取奇數位元據列表    print "輸出整數列表奇數數位元素列表:" ,self.intSeq[::2]    #使用切片擷取偶數位元據列表    print "輸出整數列表偶數位元素列表:",self.intSeq[1:-1:2]    #序列重複2次    print "字串序列重複2次並輸出:",self.strSeq*2    #串連整數序列和浮點數序列    print "串連整數序列和浮點數序列",self.intSeq+self.floatSeq    #判斷某個元素會否包含在序列中    if 5 in self.intSeq:      print "輸出序列intSeq:",self.intSeq    #判斷某個元素不包含在序列中    if "home" not in self.strSeq:      print "輸出序列strSeq:",self.strSeq  def sliceIndexUse(self):    #切片索引的開始和結束索引值可以超過序列的長度    print "輸出strSeq序列:",self.intSeq[-100:100]    #使用range函數操作字串    #每次都把位於最後一個字元刪掉    #無法輸出str這個字串    ind=-1    strg=self.strSeq[2]    print "要操作的字串(strg)是 :",strg    for ind in range(-1,-len(strg),-1):      print strg[:ind],    #使用None作為索引值,可以從第一個遍曆到最後一個元素    s=self.strSeq[-1]    print "\n要操作的字串(s)是 :",s    for i in [None]+range(-1,-len(s),-1):      print s[:i],  def useTypeConver(self):    iterObj="hello ewang"    inter=45454    print "\n使用類型轉換函式前的iterObj類型 :",type(iterObj)    print "使用類型轉換函式前的inter類型 :",type(inter)    #使用list類型轉換函式    print "使用list轉換函式後的變數類型:",type(list(iterObj))    #使用str把對象轉換為字串類型    print "使用str函數把變數inter轉換為字串類型:",type(str(inter))    #使用unicode函數轉換為Unicode字串    print "使用unicode函數把變數iterObj轉換為Unicode類型:",type(str(iterObj))    #使用tuple函數轉換為一個元組對象    print "使用tuple函數把變數iterObj轉換為元群組類型:",type(tuple(iterObj))  def useSequencBIF(self):    #調用enumerate內建函數    print "使用enumerate函數:",enumerate(self.strSeq)    #調用len函數    print "使用len函數:",len(self.strSeq)    #調用max求最大值    print "使用max函數求序列的最大值:",max(self.intSeq)    print "使用max函數求參數的最大值:",max(1,2,5,8,95,456)    #調用min求最小值    print "使用min函數求序列的最小值:",min(self.floatSeq)    print "使用min函數求參數的最小值:",min(0.33,2.56,45.23)    #調用reversed函數對序列進行逆序    print "使用reversed函數對序列intSeq逆序:",reversed(self.intSeq)    #調用sorted函數對序列進行排序    print "調用sorted函數對序列strSeq進行排序:",sorted(self.strSeq)    #調用sum對序列進行求和    print "調用sum函數對序列intSeq進行求和",sum(self.intSeq)    #調用zip返回一個元組列表    print "調用zip函數對list操作返回一個元組列表:",zip(self.strSeq,self.strSeq)  def run(self):    self.outInitData()    self.sequenceTypeOper()    self.sliceIndexUse()    self.useTypeConver()    self.useSequencBIF()def test():  #建立一個對象執行個體  seq=sequenceClass()  seq.run()if __name__=="__main__":  test()

運行結果:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.