<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          第四章4:使用列表

          共 6086字,需瀏覽 13分鐘

           ·

          2021-03-05 15:24

          第四章4:使用列表

          現(xiàn)在我們已經(jīng)學習了什么是列表和如何使用循環(huán),我們今天將學習如何使用列表。在Python中,列表對于任何程序都非常重要,所以,我們需要理解我們什么時候使用它們。

          檢查長度

          通常我們將需要知道一個列表中包含多少個對象。為了實現(xiàn)這個目標,我們使用len()函數(shù):

          # 檢查列表中對象的數(shù)量
          nums = [51015]
          length = len(nums)   # len()返加一個整數(shù)
          print(length)

          繼續(xù)并運行這一代碼塊。這個代碼塊將輸出整數(shù)3。我們后面將多次使用length函數(shù),無論是檢查一個空列表還是在range函數(shù)中使用它來角確定一個循環(huán)的次數(shù)。

          列表切片

          回顧前幾周,我們討論了一個字符的切片。列表切片也是同樣的方式,以便于我們能夠獲得特定的對象。切片和range()函數(shù)具有一樣的參數(shù),如開始、結(jié)束、步長:

          # 用切片獲取一個列表中的特定對象
          print(nums[1:3])  # 輸出結(jié)果為索引位置1和2上的對象
          print(nums[:2])  # 輸出結(jié)果為索引位置0和1上的對象
          print(nums[::2])  # 輸出結(jié)果為索引位置0,2和4上的對象,即索引從數(shù)字0開始,每次遞增2
          print(nums[-2:])  # 輸出結(jié)果為列表中最后兩個的對象

          繼續(xù)并運行這一代碼塊。輸出結(jié)果顯示在每個語句后邊的注釋中。我們使用方括號表示法,正如我們訪問索引一樣,只是我們通過冒號分開其他值,而順序剛保持為[開始:停止:步長]。方括號表示法默認從0開始,步長為1。如果你想使用默認值,可以選擇不使用這些值。對于步長為正而開始值為負將會使切片從后向前獲取數(shù)據(jù)。如果從開始位置或停止的位置使用負數(shù),則切片將從后面開始或停止。這意味著,如果你將停止位置上為-5,切片獲取的對象將從列表的開頭一直切到列表結(jié)束之前的五個元素。

          增加元素

          當你需要向你的現(xiàn)有列表中添元素,Python有兩個不同的方法來實現(xiàn)這一目標。

          .append()

          Append方法總是將值添加到列表內(nèi)元素的后面。讓我們來看一下:

          # 使用append方法將增加一個元素到列表內(nèi)元素的后面
          nums = [1020]
          print(nums)  # 輸出[10, 20]
          nums.append(5)
          print(nums)  # 輸出[10, 20, 5]

          繼續(xù)并運行這一代碼塊。我們創(chuàng)建了一個包含兩個元素的列表,然后將數(shù)值5添加到列表的后面。

          .insert()

          增加一個元素到列表中的第二個方法是使用insert函數(shù)。這一方法需要一個索引值才能將增加的值插入到指定位置。讓我們來看一個例子:

          # 在列表最開始的位置增加一個數(shù)值
          words = ['ball''base']
          print(words) # 輸出結(jié)果為['ball', 'base']
          words.insert(0'golve'# 第一個參數(shù)是索引,第二個是數(shù)值
          print(words) # 輸出結(jié)果為['golve', 'ball', 'base']

          繼續(xù)并運行這一代碼塊。輸出結(jié)果為['glove','ball','base']。glove現(xiàn)在在零索引位置上,因為我們在insert方法中指定了在該索引位置上插入數(shù)值。

          移除元素

          從一個列表中移除元素有多種方式,接下來我主要介紹其中的兩種方法。

          .pop()

          默認情況下,pop方法會移除列表中最后一個元素,當然,你也可以指定索引去移除元素。這種方法也被廣泛的用來存儲被移除的元素。當使用pop方法時,它不僅稱除了相應的元素,而且還會返回這個元素。這就可以讓我們使用一個變量來存儲從列表中移除的那個元素,以便之后使用:

          # 使用pop方法移除元素并將其存儲到一個變量中以便之后使用
          items = [5'ball'True]
          items.pop()                    # 默認移除列表中最后一個元素
          removed_item = items.pop(0)    # 移除元素5并存儲進removed_item變量中
          print(removed_item, '\n', items)

          繼續(xù)并運行這一代碼塊。使用pop方法,我們可以看到它首先移除了列表中最后一個元素True,那么,接著移除了索引位置0上的元素5。當整數(shù)5移除列表時,我們同時將其保存到一個新變量中,然后將其與新列表一起輸出。

          .remove()

          remove方法允許我們基于給定的元素來從列表中移除相應的元素:

          # 用一個try和except來使用remove方法
          sports = ['bseball''soccer''football''hockey']
          try:
              sports.remove('soccer')
          except:
              print('That item does not exist in the list')
          print(sports)

          繼續(xù)并運行這一代碼塊。在這里,我們將看到結(jié)果輸出的是沒有元素soccer的列表,這是因為元素soccer剛剛已經(jīng)被我們刪除了。另外要說明的一點是,我們之所以嘗試使用try和except結(jié)構(gòu)語句,是因為如果列表中不存在元素“soccer”,則可以防止該程序崩潰。

          使用數(shù)值列表數(shù)據(jù)

          對于我們使用的數(shù)值型數(shù)據(jù),Python為我們提供了一些函數(shù)來了解數(shù)值型數(shù)據(jù)的特征,如min(求最小值)、 max(求最大值)和sum(求和)。盡管這些是最常用的一些函數(shù),但是我們?nèi)匀挥懈嗟暮瘮?shù)可使用:

          # 使用min,max和sum
          nums = [539]
          print(min(nums))   # 輸出列表中最小值
          print(max(nums))   # 輸出列表中最大值
          print(sum(nums))   # 輸出列表中所有數(shù)值的和

          繼續(xù)并運行這一代碼塊。輸出結(jié)果將為3、9和17。正如其名稱所述,他們將找到列表中的最小值和最大值。sum函數(shù)則將簡單地將列表中所有數(shù)字加總求和。

          列表排序

          在實際應用中,你經(jīng)常會使用一個有序的列表。在Python中有兩種方法可以實現(xiàn)這一目標,但這兩種方法又存在一定差異。一個會直接覆蓋原始列表,另一個則會返回一個新創(chuàng)建的列表。

          sorted()

          sorted函數(shù)無論對數(shù)值型列表還是字符型列表都是有效的,但對于二者混合的列表則是無效的。sorted函數(shù)結(jié)果會返回一個列表的副本,所以它不會改變原始列表。通常來說,如果你需要保留原始且完整的列表,則使用這一函數(shù):

          # 對于數(shù)值型列表和字符型列表使用sorted方法排序
          nums = [5802]
          sorted_nums = sorted(nums)   # 使用sorted方法排序后存儲在一個新變量中
          print(nums, sorted_nums)     # 輸出原始的列表和排序后的列表

          繼續(xù)并運行這一代碼塊。你會注意到,在聲明nums列表時,其輸出結(jié)果仍是保持原始順序的列表。要獲取新的排序后列表,我們只需將其保存到一個新變量中即可。

          .sort()

          sort方法的使用目的與我們上面所講的sorted函數(shù)目的相同;但是,不同的是它會直接更改并覆蓋原始列表:

          # 使用.sort()函數(shù)對列表進行排序
          nums = [5083]
          nums.sort()           # 真接更改并覆蓋原始列表
          print(nums)

          繼續(xù)并運行這一代碼塊。結(jié)果輸出將是一個正確排序后的列表。只需記住,nums變量現(xiàn)在已更改,因為.sort()函數(shù)直接更改了變量的值。

          條件和列表

          在實際使用列表時,我們通常需要檢查列表中的某一元素量否存在?,F(xiàn)在我將介紹如何在一個列表中運行條件語句。將列表和條件語句相結(jié)合的原因有很多。以下幾個例子只是其中的幾種原因。

          使用“in”和“not in”關(guān)鍵詞

          上周介紹條件語句時,我們已經(jīng)看到了這些關(guān)鍵字的使用。使用列表時,它們的目的是在列表中快速查找對應的值:

          # 在一個列表中使用條件語句
          names = ['Jack''Robert''Mary']
          if 'Mary' in names:
              print('found')         # 當Mary在列表中將會運行這一代碼
          if 'Jimmy' not in names:
              print('not found')     # 當Jimmy不在列表中將會運行這一代碼

          繼續(xù)并運行這一代碼塊。輸出結(jié)果為“found”和“not found”。在第一個語句中,我們試圖查看列表中是否存在“Mary”,結(jié)果確實存在。第二個條件語句檢查“ Jimmy”是否不存于列表中,這也是正確的,因此它也可以運行。

          檢查一個空列表

          對于空列表的檢查有很多原因,提及最多的就是確保在你的程序中不會引發(fā)任何錯誤,接下來,讓我們來看如何對空列表進行檢查:

          # 使用條件語名來查看列表是否為空
          nums = []
          if not nums:        # 等價于語法:if nums = []
              print('empty')

          繼續(xù)并運行這一代碼塊。這將會輸出“empty”。它在注釋我們已經(jīng)提到,但我們也可以檢查一下是否等于空括號。在這里,我想向你展示如何使用“ not”關(guān)鍵字。為了檢查列表的元素,你將寫下這樣代碼:

          if nums

          循環(huán)和列表

          你能使用for循環(huán)和while循環(huán)去迭代列表中的元素。

          使用for循環(huán)

          當使用for循環(huán)迭代列表中的元素時,語法上看起來像之前我們使用的range()函數(shù)。然而,這次我們使用一個暫時變量,關(guān)鍵詞in和列表名稱。對于每一次迭代,這個臨時變量都會被分配一個新的元素的值。讓我們來試試看。

          # 使用for循環(huán)列印列表中的所有元素
          sports = ['Baseball''Hockey''Football''Basketball']
          for sport in sports:
              print(sport)

          繼續(xù)并運行這一代碼塊。在這里,我們可以看到這一代碼塊將輸出列表中的每個元素。在第一次迭代期間,臨時變量“ sport”被分配為“ Baseball”,一旦將其打印出來,它將移至下一個列表中的元素。

          使用while循環(huán)

          while循環(huán)通常用于條件循環(huán)。while循環(huán)一個比較典型的用法就是移除列表中的元素。while循環(huán)還有很多用法,這僅僅是眾多用法中的一種:

          # 使用while循環(huán)移除一個特定值
          names = ['Bob''Jack''Rob''Bob''Robert']
          while 'Bob' in names:
              names.remove('Bob')   # 移除列表中的所有的Bob字符
          print(names)

          繼續(xù)并運行這一代碼塊。變量names輸出結(jié)果將是沒有字符“ Bob”的列表。我們將while循環(huán)與條件語句結(jié)合使用,當檢查到列表中的“ Bob”值后,然后刪除它,直到條件不再成立為止。

          星期四練習

          1.移除重復值:從下面的列表中移除全部重復值,輸出結(jié)果應是[‘Bob’, ‘Kenny’, ‘Amanda’]


          小提示:使用.count()方法并結(jié)合while循環(huán)。


          2.用戶輸入:使用一個while循環(huán)來持持續(xù)要求用戶輸入一個詞語,直到用戶輸入“quit”。一旦用戶輸入一個詞,就將這個詞添加到列表中。一旦他們中止循環(huán),則用for循環(huán)輸出列表中的所有元素。


          今天講解的知識點很重要,通過上述講解的內(nèi)容我們才能了解如何使用列表,是否它可以是條件語句或循環(huán)。列表可以結(jié)合很多方法使用; 在本書的其余部分中,我們將更詳細的介紹它們。


          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲成人AV电影在线观看 | 欧美亚洲三区久久 | 激情白浆 | 亚洲男人的天堂在线视频 | 黄片视频链接 |