python之生成列表(Range和列表表達式)


  1. 在python里為了方便生成list整數列表,認識了一個新的函數range()

  range有三個參數range(start, stop,step):

    參數解釋:

      start:list列表開始的值,默認從0開始。

      stop:list列表計數到stop結束,但是不包括stop。

      step:步長,默認為1。也就是列表后一個值和前一個值的間隔值。

        比如:range(1, 10, 2)生成的列表為[1, 3, 5, 7, 9]。

           range(10)生成的列表為[0,1,2,3,4,5,6,7,8,9]。

             range(0,-5,-1)生成列表為[0, -1, -2, -3, -4]

           range(0) 生成空列表[ ]

   range()應用舉例

    for應用:輕松創建需要的列表,節省代碼數量

      [ x * x for x in range(1, 11) ]

      生成[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  2. 除了range()可以快速生成列表之外,還可以應用列表表達式,

  格式為:[列表表達式]  

  比如:

 

   已有列表L = [1, 2, -1, -3, 8, 4, -6, 7],篩選列表中大於0的元素 。

    1.按照正常思維需要for循環,挨個判斷元素是否大於0,然后添加到新的列表中:

    d = []

    for x in L:

      if x > 0:

        d.append(x)

    print d

    結果為[1, 2, 8, 4, 7]

    2. 應用列表表達式:

     d = [x for x in L if x > 0] 

     print d

       結果為[1, 2, 8, 4, 7]

    列表表達式,代碼更為簡潔,應用更為方便,理解起來也不難,勤加練習,數量掌握之后,會大大提高自己的代碼效率。

    拓展:列表表達式,可以實行多層嵌套

    比如:

      [x*10 + y for x in '15482' for y in '23532' if x > y ]

      生成十位數比個位數大的兩位數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM