zoukankan      html  css  js  c++  java
  • Python——for表达式

    一、for表达式

    1、for表达式语法格式及用法

    for表达式利用可迭代对象创建新的列表,for表达式也称为列表推导式,具体语法格式如下:

    [表达式 for 循环计数器 in 可迭代对象]

    例:

    a = [ i + i for i in range(0,5) ]
    print (a)
    # 返回的是一个列表,打印 [0, 2, 4, 6, 8]  

    上面的例子中,range相当于包含5个元素(0,1,2,3,4),对表达式 i + i 执行5次,并且把5次执行的值收集起来作为新的列表元素。

    2、for表达式添加if条件

    for表达式还可以在可迭代对象后面加if条件,for表达式只会迭代符合条件的元素,

    例:

    a = [ i + i for i in range(0,5) if i % 2 == 0]
    print (a)
    # 打印 [0, 4, 8]

    上面的例子中,if i % 2 == 0筛选了range中的奇数,只对符合条件的3个元素(0,2,4)进行了迭代。

    3、生成器推导式

    for表达式把方括号[]改为圆括号(),将会生成一个生成器,生成器同样可以使用for循环迭代,

    a = ( i + i for i in range(5) )
    print (a)
    # 将不再生成列表,而是一个生成器。 打印 <generator object <genexpr> at 0x0000000002691B10>
    
    # 使用for循环迭代生成器
    for h in a:
        print (h,end = '	')
    # 打印 0       2       4       6       8       
    

    4、嵌套for表达式  

    for表达是也可以使用多个循环,

    例:

    a = [[i,j] for i in range(5) for j in range(6,8)]
    print (a)
    # 打印 [[0, 6], [0, 7], [1, 6], [1, 7], [2, 6], [2, 7], [3, 6], [3, 7], [4, 6], [4, 7]]

    上面例子中,相当于如下的嵌套循环:

    for i in range(5):
        for j in range(6,8):
            print ([i,j])

    在嵌套的for表达式中,也可以添加if条件,

    例:

    a = [[i,j] for i in range(5) for j in range(5) if j == i]
    print (a)
    #打印 [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]]  

    上面的例子中,只有当 i 和 j 相等时,才会进行迭代。

      

  • 相关阅读:
    css文本在标签<text>内平均分布
    ES6实现去重,排序,加升序
    uni-app项目打包成小程序
    uni-app项目( uniapp滚动监听元素)
    运行vue项目:Module build failed: Error: Cannot find module 'node-sass'报错问题
    笨方法实现数量的输入与加一减一 、以及对边界值的判断禁用
    基于nuxt的前端商城pc端项目(bug记录)
    基于nuxt的商城项目pc端项目记录
    Vue学习笔记整理-长期更新
    程序员,不要创业!
  • 原文地址:https://www.cnblogs.com/mingmingming/p/11055282.html
Copyright © 2011-2022 走看看