<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                對于list,由于她的確非常非常龐雜,在python中應用非常廣泛,所以,雖然已經介紹完畢了基礎內容,這里還要用一講深入一點點,往往越深入越... ## list解析 先看下面的例子,這個例子是想得到1到9的每個整數的平方,并且將結果放在list中打印出來 ~~~ >>> power2 = [] >>> for i in range(1,10): ... power2.append(i*i) ... >>> power2 [1, 4, 9, 16, 25, 36, 49, 64, 81] ~~~ python有一個非常有意思的功能,就是list解析,就是這樣的: ~~~ >>> squares = [x**2 for x in range(1,10)] >>> squares [1, 4, 9, 16, 25, 36, 49, 64, 81] ~~~ 看到這個結果,看官還不驚嘆嗎?這就是python,追求簡潔優雅的python! 其官方文檔中有這樣一段描述,道出了list解析的真諦: > List comprehensions provide a concise way to create lists. Common applications are to make new lists where each element is the result of some operations applied to each member of another sequence or iterable, or to create a subsequence of those elements that satisfy a certain condition. 還記得[前面一講](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/118.md)中的那個問題嗎? > 找出100以內的能夠被3整除的正整數。 我們用的方法是: ~~~ aliquot = [] for n in range(1,100): if n%3 == 0: aliquot.append(n) print aliquot ~~~ 好了。現在用list解析重寫,會是這樣的: ~~~ >>> aliquot = [n for n in range(1,100) if n%3==0] >>> aliquot [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99] ~~~ 震撼了。絕對牛X! 再來一個,是網友[ccbikai](https://github.com/ccbikai)提供的,比牛X還牛X。 ~~~ >>> print range(3,100,3) [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99] ~~~ 這就是python有意思的地方,也是計算機高級語言編程有意思的地方,你只要動腦筋,總能找到驚喜的東西。 其實,不僅僅對數字組成的list,所有的都可以如此操作。請在平復了激動的心之后,默默地看下面的代碼,感悟一下list解析的魅力。 ~~~ >>> mybag = [' glass',' apple','green leaf '] #有的前面有空格,有的后面有空格 >>> [one.strip() for one in mybag] #去掉元素前后的空格 ['glass', 'apple', 'green leaf'] ~~~ ## enumerate 這是一個有意思的內置函數,本來我們可以通過for i in range(len(list))的方式得到一個list的每個元素編號,然后在用list[i]的方式得到該元素。如果要同時得到元素編號和元素怎么辦?就是這樣了: ~~~ >>> for i in range(len(week)): ... print week[i]+' is '+str(i) #注意,i是int類型,如果和前面的用+連接,必須是str類型 ... monday is 0 sunday is 1 friday is 2 ~~~ python中提供了一個內置函數enumerate,能夠實現類似的功能 ~~~ >>> for (i,day) in enumerate(week): ... print day+' is '+str(i) ... monday is 0 sunday is 1 friday is 2 ~~~ 算是一個有意思的內置函數了,主要是提供一個簡單快捷的方法。 官方文檔是這么說的: > Return an enumerate object. sequence must be a sequence, an iterator, or some other object which supports iteration. The next() method of the iterator returned by enumerate() returns a tuple containing a count (from start which defaults to 0) and the values obtained from iterating over sequence: 順便抄錄幾個例子,供看官欣賞,最好實驗一下。 ~~~ >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] ~~~ 在這里有類似(0,'Spring')這樣的東西,這是另外一種數據類型,待后面詳解。 下面將enumerate函數和list解析聯合起來,同時顯示,在進行list解析的時候,也可以包含進函數(關于函數,可以參考的章節有:[初始強大的函數](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/106.md),[重回函數](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/212.md))。 ~~~ >>> def treatment(pos, element): ... return "%d: %s"%(pos,element) ... >>> seq = ["qiwsir","qiwsir.github.io","python"] >>> [ treatment(i, ele) for i,ele in enumerate(seq) ] ['0: qiwsir', '1: qiwsir.github.io', '2: python'] ~~~ 看官也可以用[小話題大函數](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/209.md)中的lambda函數來寫上面的代碼: ~~~ >>> seq = ["qiwsir","qiwsir.github.io","python"] >>> foo = lambda i,ele:"%d:%s"%(i,ele) #lambda函數,給代碼帶來了簡介 >>> [foo(i,ele) for i,ele in enumerate(seq)] ['0:qiwsir', '1:qiwsir.github.io', '2:python'] ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看