<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                看這個標題,有點匪夷所思嗎?為什么for是難以想象的呢?因為在python中,它的確是很常用而且很強悍,強悍到以至于另外一個被稱之為迭代的東西,在python中就有點相形見絀了。在別的語言中,for的地位從來沒有如同python中這么高的。 廢話少說,上干活。 ## for的基本操作 for是用來循環的,是從某個對象那里依次將元素讀取出來。看下面的例子,將已經學習過的數據對象用for循環一下,看看哪些能夠使用,哪些不能使用。同時也是復習一下過往的內容。 ~~~ >>> name_str = "qiwsir" >>> for i in name_str: #可以對str使用for循環 ... print i, ... q i w s i r >>> name_list = list(name_str) >>> name_list ['q', 'i', 'w', 's', 'i', 'r'] >>> for i in name_list: #對list也能用 ... print i, ... q i w s i r >>> name_set = set(name_str) #set還可以用 >>> name_set set(['q', 'i', 's', 'r', 'w']) >>> for i in name_set: ... print i, ... q i s r w >>> name_tuple = tuple(name_str) >>> name_tuple ('q', 'i', 'w', 's', 'i', 'r') >>> for i in name_tuple: #tuple也能呀 ... print i, ... q i w s i r >>> name_dict={"name":"qiwsir","lang":"python","website":"qiwsir.github.io"} >>> for i in name_dict: #dict也不例外 ... print i,"-->",name_dict[i] ... lang --> python website --> qiwsir.github.io name --> qiwsir ~~~ 除了上面的數據類型之外,對文件也能夠用for,這在前面有專門的[《不要紅頭文件》](https://github.com/qiwsir/ITArticles/blob/master/BasicPython/130.md)兩篇文章講解有關如何用for來讀取文件對象的內容。看官若忘記了,可去瀏覽。 for在list解析中,用途也不可小覷,這在講解list解析的時候,也已說明,不過,還是再復習一下為好,所謂學而時常復習之,不亦哈哈乎。 ~~~ >>> one = range(1,9) >>> one [1, 2, 3, 4, 5, 6, 7, 8] >>> [ x for x in one if x%2==0 ] [2, 4, 6, 8] ~~~ 什么也不說了,list解析的強悍,在以后的學習中會越來越體會到的,佩服佩服呀。 列位如果用python3,會發現字典解析、元組解析也是奇妙的呀。 要上升一個檔次,就得進行概括。將上面所說的for循環,概括一下,就是下圖所示: [![](https://box.kancloud.cn/2015-07-06_559a752333da7.png)](https://github.com/qiwsir/ITArticles/blob/master/Pictures/20601.png) 用一個文字表述: ~~~ for iterating_var in sequence: statements ~~~ iterating_var是對象sequence的迭代變量,也就是sequence必須是一個能夠有某種序列的對象,特別注意沒某種序列,就是說能夠按照一定的腳標獲取元素。當然,文件對象屬于序列,我們沒有用腳標去獲取每行,如果把它讀取出來,因為也是一個str,所以依然可以用腳標讀取其內容。 ## zip zip是什么東西?在交互模式下用help(zip),得到官方文檔是: > zip(...) zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)] > > Return a list of tuples, where each tuple contains the i-th element from each of the argument sequences. The returned list is truncated in length to the length of the shortest argument sequence. 通過實驗來理解上面的文檔: ~~~ >>> a = "qiwsir" >>> b = "github" >>> zip(a,b) [('q', 'g'), ('i', 'i'), ('w', 't'), ('s', 'h'), ('i', 'u'), ('r', 'b')] >>> c = [1,2,3] >>> d = [9,8,7,6] >>> zip(c,d) [(1, 9), (2, 8), (3, 7)] >>> e = (1,2,3) >>> f = (9,8) >>> zip(e,f) [(1, 9), (2, 8)] >>> m = {"name","lang"} >>> n = {"qiwsir","python"} >>> zip(m,n) [('lang', 'python'), ('name', 'qiwsir')] >>> s = {"name":"qiwsir"} >>> t = {"lang":"python"} >>> zip(s,t) [('name', 'lang')] ~~~ zip是一個內置函數,它的參數必須是某種序列數據類型,如果是字典,那么鍵視為序列。然后將序列對應的元素依次組成元組,做為一個list的元素。 下面是比較特殊的情況,參數是一個序列數據的時候,生成的結果樣子: ~~~ >>> a 'qiwsir' >>> c [1, 2, 3] >>> zip(c) [(1,), (2,), (3,)] >>> zip(a) [('q',), ('i',), ('w',), ('s',), ('i',), ('r',)] ~~~ 這個函數和for連用,就是實現了: ~~~ >>> c [1, 2, 3] >>> d [9, 8, 7, 6] >>> for x,y in zip(c,d): #實現一對一對地打印 ... print x,y ... 1 9 2 8 3 7 >>> for x,y in zip(c,d): #把兩個list中的對應量上下相加。 ... print x+y ... 10 10 10 ~~~ 上面這個相加的功能,如果不用zip,還可以這么寫: ~~~ >>> length = len(c) if len(c)<len(d) else len(d) #判斷c,d的長度,將短的長度拿出來 >>> for i in range(length): ... print c[i]+d[i] ... 10 10 10 ~~~ 以上兩種寫法那個更好呢?前者?后者?哈哈。我看差不多了。還可以這么做呢: ~~~ >>> [ x+y for x,y in zip(c,d) ] [10, 10, 10] ~~~ 前面多次說了,list解析強悍呀。當然,還可以這樣的: ~~~ >>> [ c[i]+d[i] for i in range(length) ] [10, 10, 10] ~~~ for循環語句在后面還會經常用到,其實前面已經用了很多了。所以,看官應該不感到太陌生。
                  <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>

                              哎呀哎呀视频在线观看