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