• Python


    列表生成式

    一个用来生成列表的特定语法形式的表达式。可以对一组元素进行过滤或得到对列表元素进行处理后得到的结果,可以快速的根据已存在的可迭代对象推导出一个新的list。

    生成式的基本语法:

    [expression for iter_var in iterable]
    [expression for iter_var in iterable if cond_expr]
    


    第一种语法:

    首先迭代 iterable 里所有内容,每一次迭代,都把 iterable 里相应内容放到iter_var 中,
    再在表达式expression 中应用该 iter_var 的内容,最后用表达式的计算值生成一个列表。



    第二种语法:

    加入了判断语句,只有满足条件的内容才把 iterable 里相应内容放到 iter_var 中,再在表达式expression 中应用该 iter_var 的内容,
    最后用表达式的计算值生成一个列表。



    先从简单的例子开始:

    生成一个10个元素的数据,每个分别对应 1-10的两倍。

    按照平常基本的思路,定义一个空列表 a ,使用for 循环遍历1-10,遍历出来的数乘 2 ,通过append 追加到列表中。

    a = []
    for i in range(1, 11):
        a.append(i*2)
    print(a)
    


    使用列表生成式的做法:

    list = [x*2 for x in range(1, 11)]
    print(list)
    

    看生成式的语法:x 先进行遍历 1- 10,表达式为 x*2。



    带if判断:

    对一个列表里面的数据筛选,比如:[1, 9, -2, 4, -5, 11, -7, 3],找出大于0的数,按普通思路可以for循环挨个判断,符合条件的放到新的列表。

    l = [1, 9, -2, 4, -5, 11, -7, 3]
    a = []
    for i in l:
        print(i)
        if i > 0:
            a.append(i)
    print(a)
    


    使用列表生成式:

    l = [1, 9, -2, 4, -5, 11, -7, 3]
    d = [x for x in l if x >0]
    print(d)
    

    由此可见,列表生成式代码简洁高效。

    练习:
    生成一个100以内所有偶数的列表





    ------分割线------

    如果不觉得昨天的自己是个傻 x,那说明你今天没啥进步...
    
    ——涛哥
    
  • 相关阅读:
    团队作业——需求分析
    团队作业——UML设计
    第三次个人作业——用例图设计
    团队项目——介绍文档
    团队集结
    第二次结对作业
    第一次结对作业
    解决Mac中anaconda作图中文异常显示的问题
    《软件工程》——回顾过去 展望未来
    第三次个人作业——用例图设计
  • 原文地址:https://www.cnblogs.com/wwho/p/15183689.html
Copyright © 2020-2023  润新知