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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                前面的學習中,我們已經知道了兩種python的數據類型:int和str。再強調一下對數據類型的理解,這個世界是由數據組成的,數據可能是數字(注意,別搞混了,數字和數據是有區別的),也可能是文字、或者是聲音、視頻等。在python中(其它高級語言也類似)把狀如2,3這樣的數字劃分為一個類型,把狀如“你好”這樣的文字劃分一個類型,前者是int類型,后者是str類型(這里就不說翻譯的名字了,請看官熟悉用英文的名稱,對日后編程大有好處,什么好處呢?誰用誰知道!)。 前面還學習了變量,如果某個變量指向一個對象(某種類型的數據)行話是:賦值),通常這個變量我們就把它叫做int類型的變量(注意,這種說法是不嚴格的,或者是受到別的語言影響的,在python中,特別要注意:**變量沒有類型,對象有類型**。在python里,變量不用提前聲明(在某些語言,如JAVA中需要聲明變量之后才能使用。這個如果看官沒有了解,不用擔心,因為我們是學習python,以后學習的語言多了,自然就能體會到這點區別了),隨用隨命名。 這一講中的list類型,也是python的一種數據類型。翻譯為:列表。下面的黑字,請看官注意了: **LIST在python中具有非常強大的功能。** ## [](https://github.com/qiwsir/StarterLearningPython/blob/master/111.md#定義)定義 在python中,用方括號表示一個list,[ ] 在方括號里面,可以是int,也可以是str類型的數據,甚至也能夠是True/False這種布爾值。看下面的例子,特別注意閱讀注釋。 ~~~ >>> a=[] #定義了一個變量a,它是list類型,并且是空的。 >>> type(a) <type 'list'> #用內置函數type()查看變量a的類型,為list >>> bool(a) #用內置函數bool()看看list類型的變量a的布爾值,因為是空的,所以為False False >>> print a #打印list類型的變量a [] ~~~ `bool()`是一個布爾函數,這個東西后面會詳述。它的作用就是來判斷一個對象是“真”還是“空”(假)。如果想上面例子那樣,list中什么也沒有,就是空的,用bool()函數來判斷,得到False,從而顯示它是空的。 不能總玩空的,來點實的吧。 ~~~ >>> a=['2',3,'qiwsir.github.io'] >>> a ['2', 3, 'qiwsir.github.io'] >>> type(a) <type 'list'> >>> bool(a) True >>> print a ['2', 3, 'qiwsir.github.io'] ~~~ 用上述方法,定義一個list類型的變量和數據。 本講的標題是“有容乃大的list”,就指明了list的一大特點:可以無限大,就是說list里面所能容納的元素數量無限,當然這是在硬件設備理想的情況下。 > 如果看官以后或者已經了解了別的語言,比如比較常見的Java,里面有一個跟list相似的數據類型——數組——但是兩者還是有區別的。在Java中,數組中的元素必須是基本數據類型中某一個,也就是要么都是int類型,要么都是char類型等,不能一個數組中既有int類型又有char類型。這是因為java中的數組,需要提前聲明,聲明的時候就確定了里面元素的類型。但是python中的list,盡管跟java中的數組有類似的地方——都是`[]`包裹的——list中的元素是任意類型的,可以是int,str,甚至還可以是list,乃至于是以后要學的dict等。所以,有一句話說:List是python中的苦力,什么都可以干。 ## [](https://github.com/qiwsir/StarterLearningPython/blob/master/111.md#索引和切片)索引和切片 尚記得在[《字符串(3)》](https://github.com/qiwsir/StarterLearningPython/blob/master/108.md)中,曾經給“索引”(index)和“切片”。 ~~~ >>> url = "qiwsir.github.io" >>> url[2] 'w' >>> url[:4] 'qiws' >>> url[3:9] 'sir.gi' ~~~ 在list中,也有類似的操作。只不過是以元素為單位,不是以字符為單位進行索引了。看例子就明白了。 ~~~ >>> a ['2', 3, 'qiwsir.github.io'] >>> a[0] #索引序號也是從0開始 '2' >>> a[1] 3 >>> [2] [2] >>> a[:2] #跟str中的類似,切片的范圍是:包含開始位置,到結束位置之前 ['2', 3] #不包含結束位置 >>> a[1:] [3, 'qiwsir.github.io'] ~~~ list和str兩種類型的數據,有共同的地方,它們都屬于序列(都是一些對象按照某個次序排列起來,這就是序列的最大特征),因此,就有很多類似的地方。如剛才演示的索引和切片,是非常一致的。 ~~~ >>> lang = "python" >>> lang.index("y") 1 >>> lst = ['python','java','c++'] >>> lst.index('java') 1 ~~~ 在前面講述字符串索引和切片的時候,以及前面的演示,所有的索引都是從左邊開始編號,第一個是0,然后依次增加1。此外,還有一種編號方式,就是從右邊開始,右邊第一個可以編號為`-1`,然后向左依次是:-2,-3,...,依次類推下來。這對字符串、列表等各種序列類型都是用。 ~~~ >>> lang 'python' >>> lang[-1] 'n' >>> lst ['python', 'java', 'c++'] >>> lst[-1] 'c++' ~~~ 從右邊開始編號,第-1號是右邊第一個。但是,如果要切片的話,應該注意了。 ~~~ >>> lang[-1:-3] '' >>> lang[-3:-1] 'ho' >>> lst[-3:-1] ['python', 'java'] ~~~ 序列的切片,一定要左邊的數字小有右邊的數字,`lang[-1:-3]`就沒有遵守這個規則,返回的是一個空。 ## [](https://github.com/qiwsir/StarterLearningPython/blob/master/111.md#反轉)反轉 這個功能作為一個獨立的項目提出來,是因為在編程中常常會用到。通過舉例來說明反轉的方法: ~~~ >>> alst = [1,2,3,4,5,6] >>> alst[::-1] #反轉 [6, 5, 4, 3, 2, 1] >>> alst [1, 2, 3, 4, 5, 6] ~~~ 當然,對于字符串也可以 ~~~ >>> lang 'python' >>> lang[::-1] 'nohtyp' >>> lang 'python' ~~~ 看官是否注意到,上述不管是str還是lst反轉之后,再看原來的值,沒有改變。這就說明,這里的反轉,不是在“原地”把原來的值倒過來,而是新生成了一個值,那個值跟原來的值相比,是倒過來了。 這是一種非常簡單的方法,雖然我在寫程序的時候常常使用,但是,我不是十分推薦,因為有時候讓人感覺迷茫。python還有另外一種方法讓list反轉,是比較容易理解和閱讀的,特別推薦之: ~~~ >>> list(reversed(alst)) [6, 5, 4, 3, 2, 1] ~~~ 比較簡單,而且很容易看懂。不是嗎? 順便給出reversed函數的詳細說明: ~~~ >>> help(reversed) Help on class reversed in module __builtin__: class reversed(object) | reversed(sequence) -> reverse iterator over values of the sequence | | Return a reverse iterator ~~~ 它返回一個可以迭代的對象(關于迭代的問題,后續會詳述之),不過是已經將原來的序列對象反轉了。比如: ~~~ >>> list(reversed("abcd")) ['d', 'c', 'b', 'a'] ~~~ 很好,很強大,特別推薦使用。 ## [](https://github.com/qiwsir/StarterLearningPython/blob/master/111.md#對list的操作)對list的操作 任何一個行業都有自己的行話,如同古代的強盜,把撤退稱之為“扯乎”一樣,縱然是一個含義,但是強盜們愿意用他們自己的行業用語,俗稱“黑話”。各行各業都如此。這樣做的目的我理解有兩個,一個是某種保密;另外一個是行外人士顯示本行業的門檻,讓別人感覺這個行業很高深,從業者有一定水平。 不管怎么,在python和很多高級語言中,都給本來數學角度就是函數的東西,又在不同情況下有不同的稱呼,如方法、類等。當然,這種稱呼,其實也是為了區分函數的不同功能。 前面在對str進行操作的時候,有一些內置函數,比如s.strip(),這是去掉左右空格的內置函數,也是str的方法。按照一貫制的對稱法則,對list也會有一些操作方法。 在講述字符串的時候,提到過,所有的序列,都有幾種基本操作。list當然如此。 ### [](https://github.com/qiwsir/StarterLearningPython/blob/master/111.md#基本操作)基本操作 * len() 在交互模式中操作: ~~~ >>> lst ['python', 'java', 'c++'] >>> len(lst) 3 ~~~ * +,連接兩個序列 交互模式中: ~~~ >>> lst ['python', 'java', 'c++'] >>> alst [1, 2, 3, 4, 5, 6] >>> lst + alst ['python', 'java', 'c++', 1, 2, 3, 4, 5, 6] ~~~ * *,重復元素 交互模式中操作 ~~~ >>> lst ['python', 'java', 'c++'] >>> lst * 3 ['python', 'java', 'c++', 'python', 'java', 'c++', 'python', 'java', 'c++'] ~~~ * in 列表lst還是前面的值 ~~~ >>> "python" in lst True >>> "c#" in lst False ~~~ * max()和min() 以int類型元素為例。如果不是,都是按照字符在ascii編碼中所對應的數字進行比較的。 ~~~ >>> alst [1, 2, 3, 4, 5, 6] >>> max(alst) 6 >>> min(alst) 1 >>> max(lst) 'python' >>> min(lst) 'c++' ~~~ * cmp() 采用上面的方法,進行比較 ~~~ >>> lsta = [2,3] >>> lstb = [2,4] >>> cmp(lsta,lstb) -1 >>> lstc = [2] >>> cmp(lsta,lstc) 1 >>> lstd = ['2','3'] >>> cmp(lsta,lstd) -1 ~~~ ### [](https://github.com/qiwsir/StarterLearningPython/blob/master/111.md#追加元素)追加元素 ~~~ >>> a = ["good","python","I"] >>> a ['good', 'python', 'I'] >>> a.append("like") #向list中添加str類型"like" >>> a ['good', 'python', 'I', 'like'] >>> a.append(100) #向list中添加int類型100 >>> a ['good', 'python', 'I', 'like', 100] ~~~ [官方文檔](https://docs.python.org/2/tutorial/datastructures.html)這樣描述list.append()方法 > list.append(x) > > Add an item to the end of the list; equivalent to a[len(a):] = [x]. 從以上描述中,以及本部分的標題“追加元素”,是不是能夠理解list.append(x)的含義呢?即將新的元素x追加到list的尾部。 列位看官,如果您注意看上面官方文檔中的那句話,應該注意到,還有后面半句: equivalent to a[len(a):] = [x],意思是說list.append(x)等效于:a[len(a):]=[x]。這也相當于告訴我們了另外一種追加元素的方法,并且兩種方法等效。 ~~~ >>> a ['good', 'python', 'I', 'like', 100] >>> a[len(a):]=[3] #len(a),即得到list的長度,這個長度是指list中的元素個數。 >>> a ['good', 'python', 'I', 'like', 100, 3] >>> len(a) 6 >>> a[6:]=['xxoo'] >>> a ['good', 'python', 'I', 'like', 100, 3, 'xxoo'] ~~~
                  <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>

                              哎呀哎呀视频在线观看