python進階特性

來源:互聯網
上載者:User

標籤:set   列表   print   yield   空間   dict   大量   font   迴圈   

切片:用於取一個list或tuple的部分元素;L = [‘Michael‘,‘Sarah‘,‘Tracy‘,‘Bob‘,‘Jack‘]L[0:3]        //表示從索引0開始取,直到索引3為止,但不包括索引3,即索引0,1,2;正好是三個元素;L[:3]         //如果第一個索引是0,還可以省略;L[1:3]        //從索引1開始,到3-1結束;L[-2:]        //從倒數第二個元素開始取,取完元素;L[-2:-1]      //從倒數第二個元素開始取,取到倒數第一個元素;好,現在我們再加強一下這個處理方式,我們還想要更多的功能,例如,每兩個取一個;L = list(range(100))L[:10:2]        //從索引0開始取,(從這裡也可以看出,range(100)是指從0到100-1),取到10-1,然後每兩個取1個,也就是0,2,4,6,8而字串也可以呀看成是一種list,每個元素就是一個字元。也可以用切片操作,‘ABCDEFG‘[0,3]    //‘ABC‘‘ABCDEFG‘[::2]    //‘ACEG‘迭代:字典也可以用迭代的方式來實現,不過,dict迭代的是key,如果要迭代value,可以用for value in d.values();如果要同時迭代key和value,用for k,v in d.items();迭代字典的value:for n in d.values():    print(n)迭代字典的key和value:for k,v in d.items():    print(k,v) 在for迴圈中,同時引用兩個變數是很正常的:for x,y in [(1.1),(2,4),(3,6)]:    print(x,y)在輸出的時候,直接用print(x,y)就可以了~~列表產生式:寫列表產生式時,把要產生的元素x*x放到前面, 後面跟for迴圈,就可以把list建立出來;[x * x for x in range(100)]        //把range(100)裡面的元素放到x之後,根據x*x產生列表;[m + n for m in ‘ABC‘ for n in ‘XYZ‘]        //使用兩層迴圈,產生全排列;產生器:建立一個列表,受到記憶體限制,列表容量有限。我們希望在迴圈的過程中不斷推算出後續的元素,這樣就不必建立完整的list,從而節省大量的空間,一邊迴圈一邊計算,稱為產生器:generator;第一種方法,把一個列表產生式的[]改成();就建立了一個generator;L = [x * x for x in range(100)]g = (x * x for x in range(100))print(next(g))            // 0print(next(g))            //1我們已經知道,可以直接作用於for迴圈的資料類型有以下幾種:一類是集合資料類型,如list,tuple,dict,set,str等;一類是generator,包括產生器和帶yield的generator function;可以直接作用於for迴圈的對象統稱為可迭代對象:iterable;而可以被next()函數調用並不斷返回下一個值的對象稱為迭代器:iterator;使用isinstance()判斷一個對象是否是iterator對象;產生器都是iterator對象,但是list,dict,str雖然是iterable卻不是iterator;把list,dict,str等iterable變成iterator可以用iter()函數;註:凡是可作用於for迴圈的對象都是iterable類型;凡是可作用於next()函數的對象都是iteratorlexington,表示一個惰性計算的序列;                       

python進階特性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.