zoukankan      html  css  js  c++  java
  • python:列表生成式和三元表达式、匿名函数

    一、列表生成式

    1、列表生成式就是python内置的一种用来生成list的生成式。

    比如下面这个例子:

    l=[]

    for i in range(10)

      list.append(i)

    生成一个列表要用循环语句此次添加元素。如果我们用列表生成式,一句话即可:

    l=[i for i in range(10)] #这个生成式的操作是,for循环执行后得到的i,返回给前面的i。这样执行结束后,l=[0,1,2,3,4,5,6,7,8,9]

    l1=[str(num).zfill(2) for n0um in l]# for循环遍历l,得到的值返回给前面的num,然后做操作str(num).zfill(2).用0补充到2位。最终结果l1=[00,01,02,03,04,05,06,07,08,09]

    2、如果生成式用()括起来,最终结果就是不是一个list,而是一个生成器

    l2 = ( i  for i in range(1,101,2) )  #生成100以内的奇数 #  如果print(l2)结果会是 <generator object <genexpr> at 0x02C88E10>
    for j in l2:  #l2是一个生成器,可以循环读出生成器的数据
       print(j)

    生成式和生成器的区别:

    生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面。每次只占用一个空间,用一个生成一个。但是效率低
    list它是把所有的元素都放在内存里面的,占用空间多。但是效率高

    3、三元表达式
       三元表达式也是一行写出。用if--else。如果if条件成立,则执行if前的语句,否则执行else语句

    举例:

    a=1

    b=2

    c= a if a>b else b  #如果a>b,则执行if前的a,也就是c=a.。否则执行else也就是c=b

    4、匿名函数lambda

    匿名函数
    lambda x: x+1 #冒号后面的是函数体,也是函数的处理逻辑,冒号前面的返回值

     举例:

    d = {'a':8,'b':2,'c':3}#定义一个字典
    
    res = sorted(d.items(),key=lambda x:x[1]) #对字典进行排序。先取出字典的所有元组d.items().然后根据关键字排序。lambda x:x[1]就表示先取x[1],在d.items()获取到的list中,x[1]也就是字典中的value.然后将x[1]传给x,最终d.items根据value排序
    结果就是:[('b', 2), ('c', 3), ('a', 8)]
  • 相关阅读:
    select option 下拉多选单选bootstrap插件使用总结
    bootstrap-dialog的使用
    display的table和cell外加table-layout:fixed等分布局,外加换行,word-wrap:break-word
    css样式实现字体删除线效果
    递归实现遍历二叉树
    童晶老师的游戏开发课程作业--实时时钟的实现
    张宵 20201120-1 每周例行报告
    张宵 20201112-1 每周例行汇报
    20201105-1 每周例行报告
    张宵 20201029-1 每周例行报告
  • 原文地址:https://www.cnblogs.com/bendouyao/p/8967236.html
Copyright © 2011-2022 走看看