<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國際加速解決方案。 廣告
                ### 2.5.1 列表類型 list 列表(list)是由若干數據組成的序列(sequence)①。構成列表的數據既能作為一個整 體去參加運算,也可以作為個體去參加運算。現實世界中列表是很常見的數據,如名單、待 辦事項清單、數學中的數列等都可表示為列表。Python 提供了內建類型 list 以支持列表數 據的表示和操作。 列表的表示 Python 列表類型的字面值采用如下形式: ``` [<表達式 1>, <表達式 2>, ..., <表達式 n>] ``` 即用一對方括號將以逗號分隔的若干數據(表達式的值)括起來。 列表中成員的個數稱為列表的長度,可以用 len()函數求得。 就像數學里有空集一樣,不含任何成員的列表也是有意義的,稱為空列表,用一對方括號[]表示。空列表的長度當然為 0。 可以將列表字面值賦給變量,以便將來通過變量引用該列表。 下面的語句演示了列表的類型、字面值、長度等基本概念: ``` >>> type([1,3,5,7,9]) &lt;type 'list'&gt; >>> len([1,3,5,7,9]) 5 >>> ["list","sequence"] ['list', 'sequence'] >>> print [],len([]) [] 0 >>> x = ['apple','banana','orange'] >>> type(x) <type 'list'> ``` ![](img/程序設計思想與方法57302.png)① 列表和序列幾乎是同義詞,但本書對兩個術語的用法做了區分。序列用作更一般的術語,列表只是序列 的特例。例如,和列表一樣,字符串、元組也可視為序列的特例。 ``` >>> print x ['apple', 'banana', 'orange'] ``` 很多編程語言都提供一種稱為數組(array)的數據類型,數組可以說是列表的特例。 數組的特殊之處有兩點:一是固定長度,即成員個數是固定的;二是各成員是同類型的。因 此我們常說程序中定義了一個“長度為 10 的整數數組”或者“長度為 5 的字符串數組”等 等。而 Python 的列表類型沒有這兩條限制,不但列表長度可以動態改變,而且列表的成員 可以是不同類型的數據。例如,下面這個列表由整數、浮點數、字符串和布爾值四種類型的 數據構成: ``` >>> y = [123,"apple",3.14,True] >>> y [123, 'apple', 3.14, True] ``` 列表的成員本身也可以是列表,如: ``` >>> z = ["my favorite",["apple","pear"],3.14,[True,False]] >>> print z ['my favorite', ['apple', 'pear'], 3.14, [True, False]] ``` 計算機應用于數學計算時,經常需要表示數學中的矩陣,顯然矩陣可以用以列表為成員 的列表很輕松地表示出來。例如下面的列表 m 就表示了一個 2×3 階的矩陣: ``` >>> m = [[11,12,13],[21,22,23]] >>> print m [[11, 12, 13], [21, 22, 23]] ``` 列表的操作 為了對列表進行操作,Python 提供了列表成員的索引機制,即通過位置編號來引用列 表成員。列表中第一個成員的索引為 0,第二個成員的索引為 1,其余依此類推。也可以從 后往前編號:最后一個成員的索引是-1,倒數第二個成員的索引是-2,其余依此類推。通 過索引操作訪問列表成員的一般形式如下: &lt;列表&gt;[&lt;數值表達式&gt;] 其中數值表達式的值就是位置索引,整個索引操作的返回結果就是索引位置上的成員。如果 索引超出了范圍,則導致出錯。 接著前面的例子,我們來通過索引訪問列表成員: ``` >>> x[0] 'apple' >>> x[-1] 'orange' >>> i = 0 >>> x[i+1] 'banana' >>> x[3] Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> x[3] IndexError: list index out of range >>> print y[3],y[1] True apple >>> m[0] [11, 12, 13] >>> m[0][1] 12 ``` 其中最后兩個例子顯示,我們可以用 m[0]來訪問矩陣 m 的第一行,用 m[0][1]來訪問矩 陣 m 的第一行、第二列的元素。 Python 也支持通過指定列表的一個索引區間來訪問列表的“子列表”,一般形式是: ``` <列表>[開始位置:結束位置] ``` 其中開始位置和結束位置都是 int 類型的表達式,整個操作的含義是返回從開始位置到結束位置(不含)的子列表。開始位置和結束位置是可選的,在未指定的情況下,Python 默認開始位置為 0,結束位置為 n(列表長度)。仍然延續上面的例子: ``` >>> x[0:2] ['apple', 'banana'] >>> x[1:] ['banana', 'pear'] >>> x[:-1] ['apple', 'banana'] ``` 我們看到,列表的索引機制和前面學過的字符串類型很像。這一點都不奇怪,因為字符 串可以看作是列表的特例——由字符組成的列表。對字符串能執行的操作,對列表也是可以 的。因此,前面學過的字符串運算+和*,也適用于列表,可以實現列表的合并、復制操作。 例如: ``` >>> [1,3,5] + [2,4] [1, 3, 5, 2, 4] >>> 10 * [0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ``` 然而,列表和字符串有一個重大不同:字符串是不可更改的,而列表是可以更改的。我 們可以為列表增加成員、刪除成員、改變某個成員的值等等。延續前面的例子演示如下: ``` >>> x[2] = "pear" >>> x ['apple', 'banana', 'pear'] >>> x = x + ["peach"] >>> x ['apple', 'banana', 'pear', 'peach'] >>> del x[1] >>> x ['apple', 'pear', 'peach'] ``` 以上語句首先將列表 x 的第 3 個成員從'orange'改成了'pear',然后為 x 增加了第 4 個 成員'peach',最后將 x 的第 2 個成員'banana'刪除。這里 del()是 Python 的內建函數, 用于刪除數據。 注意,增加、修改、刪除操作除了可以像以上例子一樣針對單個列表成員進行,也可以針對列表的一個片段進行。 Python 還支持對列表的許多其他操作,包括搜索列表以查找特定數據、在列表中間插 入數據、給列表排序等等,將在第 6 章中介紹。 range()函數 Python 語言提供了一個內建函數 range(),用于產生整數列表。我們在第 1 章中已經 見到它的用法,這里給出其完整的用法介紹。 range()的一般形式是: range(<起點>, <終點>, <步長>) 返回結果是從起點到終點的有序整數列表,各整數之間以步長為差。要特別注意一點,終點 的含義是說列表中的整數不得超過終點,但它本身是不包含在列表當中的,對此初學者很容 易犯錯。另外,起點或步長是可以省略的,它們的缺省值分別是 0 和 1。因此,range 函數 的使用方式有以下三種: ``` range(n):產生整數列表[0,1,2,...,n-1] range(i,j):產生整數列表[i,i+1,i+2, ..., j-1] range(i,j,s):產生整數列表[i,i+s,i+2s,...] ``` 其中第三種形式的返回結果取決于步長 s,不一定以 j-1 作為最后一個成員。 下面看幾個例子: ``` >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> range(5,10) [5, 6, 7, 8, 9] >>> range(1,10,2) [1, 3, 5, 7, 9] >>> range(10,0,-3) [10, 7, 4, 1] >>> range(1,1) [] ``` 從例中可見,當步長為正數時產生遞增的列表,當步長為負數時產生遞減的列表。最后一個 例子表明,如果沒有滿足條件的整數(從 1 開始并且小于 1 的整數是不存在的),則產生空 列表。 range()函數常和 for 循環語句連用,詳見第 3 章。
                  <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>

                              哎呀哎呀视频在线观看