<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      翻譯:《實用的Python編程》01_05_Lists

      目錄 | 上一節(jié) (1.4 字符串) | 下一節(jié) (1.6 文件)

      1.5 列表

      本節(jié)介紹 Python 原始數(shù)據(jù)類型列表(list)。 列表是一種有序的集合。

      創(chuàng)建列表

      使用方括號 [] 來定義列表字面量。

      names = [ 'Elwood', 'Jake', 'Curtis' ]
      nums = [ 39, 38, 42, 65, 111]
      

      有時候,列表也可以通過其它方法創(chuàng)建。例如:使用字符串的 split() 方法可以將一個字符串拆分為一個列表:

      >>> line = 'GOOG,100,490.10'
      >>> row = line.split(',')
      >>> row
      ['GOOG', '100', '490.10']
      >>>
      

      列表操作

      列表可以存儲任何類型的項(譯注:item,或者稱為元素)。使用 append() 方法添加一個新的項:

      names.append('Murphy')    # Adds at end
      names.insert(2, 'Aretha') # Inserts in middle
      

      使用加號 + 來拼接列表:

      s = [1, 2, 3]
      t = ['a', 'b']
      s + t           # [1, 2, 3, 'a', 'b']
      

      列表通過整數(shù)進行索引,索引從 0 開始。

      names = [ 'Elwood', 'Jake', 'Curtis' ]
      
      names[0]  # 'Elwood'
      names[1]  # 'Jake'
      names[2]  # 'Curtis'
      

      負索引從列表尾部開始計數(shù):

      names[-1] # 'Curtis'
      

      你可以改變列表中的任何項:

      names[1] = 'Joliet Jake'
      names                     # [ 'Elwood', 'Joliet Jake', 'Curtis' ]
      

      列表的長度:

      names = ['Elwood','Jake','Curtis']
      len(names)  # 3
      

      成員測試(in, not in):

      'Elwood' in names       # True
      'Britney' not in names  # True
      

      復(fù)制(s * n):

      s = [1, 2, 3]
      s * 3   # [1, 2, 3, 1, 2, 3, 1, 2, 3]
      

      列表遍歷和查找:

      使用 for 遍歷列表內(nèi)容:

      for name in names:
          # use name
          # e.g. print(name)
          ...
      

      這和其它編程語言的 foreach 語句類似。

      為了快速找到某項的位置(索引),使用 index() 函數(shù):

      names = ['Elwood','Jake','Curtis']
      names.index('Curtis')   # 2
      

      如果元素出現(xiàn)不止一次,index() 方法將會返回元素第一次出現(xiàn)的索引。

      如果元素沒有找到,index() 方法將引發(fā) ValueError 異常。

      列表刪除

      你可以按元素值或者按索引刪除元素:

      # Using the value
      names.remove('Curtis')
      
      # Using the index
      del names[1]
      

      移除一個元素不會“留空”。其它的元素將會移動來填充刪除元素后騰出的空間。如果元素出現(xiàn)不止一次,remove() 方法將只刪除第一次出現(xiàn)的元素。

      列表排序

      列表可以“原地”排序:

      s = [10, 1, 7, 3]
      s.sort()                    # [1, 3, 7, 10]
      
      # Reverse order
      s = [10, 1, 7, 3]
      s.sort(reverse=True)        # [10, 7, 3, 1]
      
      # It works with any ordered data
      s = ['foo', 'bar', 'spam']
      s.sort()                    # ['bar', 'foo', 'spam']
      

      如果你想生成一個新的列表,使用 sorted() 函數(shù):

      t = sorted(s)               # s unchanged, t holds sorted values
      

      列表和數(shù)學(xué)

      警告:列表不是為數(shù)學(xué)運算而設(shè)計的:

      >>> nums = [1, 2, 3, 4, 5]
      >>> nums * 2
      [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
      >>> nums + [10, 11, 12, 13, 14]
      [1, 2, 3, 4, 5, 10, 11, 12, 13, 14]
      

      特別地,列表無法像 MATLAB, Octave, R 那樣表示向量/矩陣。但是,有一些包可以幫助你解決這個問題(例如:numpy)。

      練習(xí)

      在本次練習(xí)中,我們嘗試使用 Python 的列表數(shù)據(jù)類型。在上一節(jié)中,你使用了包含股票代碼的字符串:

      >>> symbols = 'HPQ,AAPL,IBM,MSFT,YHOO,DOA,GOOG'
      

      使用字符串的 split() 方法把 symbols 拆分為一個包含股票代碼名字的列表:

      >>> symlist = symbols.split(',')
      

      練習(xí)1.19:提取和重新分配列表元素

      嘗試一些查找:

      >>> symlist[0]
      'HPQ'
      >>> symlist[1]
      'AAPL'
      >>> symlist[-1]
      'GOOG'
      >>> symlist[-2]
      'DOA'
      >>>
      

      嘗試重新分配一個值:

      >>> symlist[2] = 'AIG'
      >>> symlist
      ['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'DOA', 'GOOG']
      >>>
      

      切片:

      >>> symlist[0:3]
      ['HPQ', 'AAPL', 'AIG']
      >>> symlist[-2:]
      ['DOA', 'GOOG']
      >>>
      

      創(chuàng)建一個空的列表并添加一個元素到其中:

      >>> mysyms = []
      >>> mysyms.append('GOOG')
      >>> mysyms
      ['GOOG']
      

      你可以將一個列表的一部分重新分配到另一個列表中。例如:

      >>> symlist[-2:] = mysyms
      >>> symlist
      ['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG']
      >>>
      

      當(dāng)執(zhí)行此操作時,左手邊的列表(symlist)的大小將會被適當(dāng)調(diào)整,以適應(yīng)右手邊的列表。

      例如,在上面的實例中,symlist 的最后兩項被 mysyms 列表中的單個元素('GOOG')取代。

      練習(xí)1.20:遍歷列表元素

      for 循環(huán)可以遍歷列表這樣的序列。通過輸入下列的循環(huán)并且查看發(fā)生了什么來驗證這點:

      >>> for s in symlist:
              print('s =', s)
      # Look at the output
      

      練習(xí)1.21:成員測試

      使用 in 或者 not in 操作符來檢查 'AIG''AA',和 'CAT' 是否在 symbols 列表中:

      >>> # Is 'AIG' IN the `symlist`?
      True
      >>> # Is 'AA' IN the `symlist`?
      False
      >>> # Is 'CAT' NOT IN the `symlist`?
      True
      >>>
      

      練習(xí) 1.22:添加,插入和刪除元素

      使用 append() 方法把 'RHT' 添加到列表 symlist 的末尾:

      >>> # append 'RHT'
      >>> symlist
      ['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']
      >>>
      

      使用 insert() 方法把 'AA' 作為列表的第二個元素插入到列表中:

      >>> # Insert 'AA' as the second item in the list
      >>> symlist
      ['HPQ', 'AA', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']
      >>>
      

      使用 remove() 方法從列表中刪除 'MSFT'

      >>> # Remove 'MSFT'
      >>> symlist
      ['HPQ', 'AA', 'AAPL', 'AIG', 'YHOO', 'GOOG', 'RHT']
      >>>
      

      添加一個重復(fù)的 'YHOO' 條目到列表的末尾。

      注意:列表有重復(fù)的值是完全沒有問題的:

      >>> # Append 'YHOO'
      >>> symlist
      ['HPQ', 'AA', 'AAPL', 'AIG', 'YHOO', 'GOOG', 'RHT', 'YHOO']
      >>>
      

      使用 index() 方法查看 'YHOO' 在列表中的第一個位置:

      >>> # Find the first index of 'YHOO'
      4
      >>> symlist[4]
      'YHOO'
      >>>
      

      統(tǒng)計 'YHOO' 在列表中出現(xiàn)了多少次:

      >>> symlist.count('YHOO')
      2
      >>>
      

      刪除第一次出現(xiàn)的 'YHOO'

      >>> # Remove first occurrence 'YHOO'
      >>> symlist
      ['HPQ', 'AA', 'AAPL', 'AIG', 'GOOG', 'RHT', 'YHOO']
      >>>
      

      眾所周知,沒有方法找到或者刪除某個元素在列表中重復(fù)出現(xiàn)的所有項。但是,我們將會在第二節(jié)看到一種優(yōu)雅的方式去實現(xiàn)它。

      練習(xí)1.23:排序

      想要對一個列表排序嗎?使用 sort() 方法。試試看:

      >>> symlist.sort()
      >>> symlist
      ['AA', 'AAPL', 'AIG', 'GOOG', 'HPQ', 'RHT', 'YHOO']
      >>>
      

      想要對一個列表倒序嗎?嘗試這個:

      >>> symlist.sort(reverse=True)
      >>> symlist
      ['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']
      >>>
      

      注意:對列表排序可以“原地”修改其內(nèi)容。也就是說,是對列表的元素進行“洗牌”,而不是創(chuàng)建一個新的列表作為結(jié)果。

      練習(xí) 1.24:列表轉(zhuǎn)字符串

      想要把一個包含字符串的列表連接到一個字符串中嗎?像下面這樣使用字符串的 join() 方法實現(xiàn)(注意:這初看起來很有趣):

      >>> a = ','.join(symlist)
      >>> a
      'YHOO,RHT,HPQ,GOOG,AIG,AAPL,AA'
      >>> b = ':'.join(symlist)
      >>> b
      'YHOO:RHT:HPQ:GOOG:AIG:AAPL:AA'
      >>> c = ''.join(symlist)
      >>> c
      'YHOORHTHPQGOOGAIGAAPLAA'
      >>>
      

      練習(xí)1.25:包含任何內(nèi)容的列表

      列表可以包含任何類型的對象,包括列表(示例:嵌套的列表)。試試看:

      >>> nums = [101, 102, 103]
      >>> items = ['spam', symlist, nums]
      >>> items
      ['spam', ['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA'], [101, 102, 103]]
      

      請注意上面的輸出,items 是一個包含三個元素的列表,第一個元素是一個字符串,其它兩個元素是列表。

      你可以通過多個索引操作來訪問嵌套列表的項。

      >>> items[0]
      'spam'
      >>> items[0][0]
      's'
      >>> items[1]
      ['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']
      >>> items[1][1]
      'RHT'
      >>> items[1][1][2]
      'T'
      >>> items[2]
      [101, 102, 103]
      >>> items[2][1]
      102
      >>>
      

      盡管在技術(shù)上能夠生成非常復(fù)雜的列表結(jié)構(gòu),但作為一般規(guī)則,你還是希望保持簡單。通常,列表存儲類型相同的元素。例如,完全由數(shù)字或者文本字符串構(gòu)成的列表。在同一個列表中混合不同類型的數(shù)據(jù),往往會讓人感到頭痛,因此最好避免這種情況。

      目錄 | 上一節(jié) (1.4 字符串) | 下一節(jié) (1.6 文件)

      注:完整翻譯見 https://github.com/codists/practical-python-zh

      posted @ 2021-02-17 10:31  codists  閱讀(141)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 男女啪啪高潮激烈免费版| 日韩一区二区三区东京热| 成人免费无遮挡无码黄漫视频| 亚洲老妇女亚洲老熟女久| 周宁县| 国产一区二区三区不卡观| 亚洲中文字幕无码中字| 久久一区二区中文字幕| 91人妻熟妇在线视频| 国产成人麻豆亚洲综合无码精品| 国产精品国产精品国产精品| 国产极品精品自在线不卡| 一区二区三区四区五区自拍| 亚洲乱人伦中文字幕无码| 成人精品日韩专区在线观看| 国产精品久久久久7777| 无码福利写真片视频在线播放| 亚洲男女羞羞无遮挡久久丫| 欧美伦费免费全部午夜最新| 久久天天躁狠狠躁夜夜avapp| 国产亚洲精品久久yy50| 成人一区二区三区在线午夜 | 国产精品一区在线蜜臀| 亚洲精品久久一区二区三区四区| 亚洲精品喷潮一区二区三区| 99热久久这里只有精品| 国产综合久久99久久| 97视频精品全国免费观看| 国产va免费精品观看| 极品vpswindows少妇| 暖暖 免费 高清 日本 在线观看5| 国产成人无码精品久久久露脸 | 师宗县| 国产精品国三级国产av| 精品无码国产污污污免费| 国产偷窥熟女高潮精品视频| 久久精品一本到东京热| 性欧美三级在线观看| 夜夜爽77777妓女免费看| 精品无码久久久久久尤物| 欧美白妞大战非洲大炮|