zoukankan      html  css  js  c++  java
  • Python 列表生成器

    1. 列表里生成器相比range()生成的列表

    生成一个列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可用range(1,11)

    L = range(1,11)
    # print L
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    如果要生成一个[1x1, 2x2, 3x3, ..., 10x10]怎么做?用for循环

    L = []
    for x in range(1,11):
    L.append(x*x)
    
    # print L
    # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    但是循环太繁琐了,列表生成器就一行语句解决问题:

    L = [x*x for x in range(1,11)]
    # 生成列表L=[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    2. 列表生成器中也可以加上if判断

    L = [x*x for x in range(1, 11) if x%2 == 0]
    #print L
    #[4, 16, 36, 64, 100]

    该列表生成器的执行顺序是:先执行for语句,x取到值;然后执行if语句做判断;再执行数学表达式。结果存入列表中。

    3. 列表生成器中使用两层循环。

    L = [m+n for m in 'ABC' for n in 'XYZ']
    # print L
    # ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

    三层和三层以上的循环就很少用到了。

  • 相关阅读:
    第三次个人作业
    第二次结对作业
    第一次结对作业
    第二次编程作业
    第一次编程
    第一次博客作业
    个人总结
    第二次结对作业
    软件工程-个人总结
    第三次个人作业
  • 原文地址:https://www.cnblogs.com/haoshine/p/5093472.html
Copyright © 2011-2022 走看看