• day13三元表达式,列表生成式,生成器表达式,匿名函数,内置函数


    三元表达式:

    • 语法:

      条件成立返回左边的值 if 判断条件 else 条件不成立返回右边的值

      # 需求: 让用户输入用户名,输入的用户如果不是tank,为其后缀添加_DSB
      username = input('请输入用户名:').strip()
      new_username = username if username == 'tank' else username + '_DSB'
      print(new_username)
      

    列表生成式:

    • 可以一行实现生成列表。

    • 语法:

      ​ list = [取出的每一个值、任意值 for 可迭代对象中取出的每一个值 in 可迭代对象]

      for的右边是循环次数,并且可以取出可迭代对象中每一个值

      for的左边可以为当前列表添加值

      ​ list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象]

      ​ list = [值 for 可迭代对象中取出的每一个值 in 可迭代对象 if 判断]

      # 列表生成式
      # 普通的
      new_list = []
      for i in range(1, 6):
          new_list.append(i)
      print(new_list)
      
      #列表
      new_list = [i for i in range(1, 6)]
      print(new_list)
      

    生成器表达式(生成器生成式)

    • 1.什么是生成器?
      生成的工具,生成器就是自定义的一个迭代器,本质是迭代器

    • 若函数体包含yield关键字,再调用函数,并不会执行函数体代码,得到的额返回值即生成器对象。

    • 列表生成式: 若数据量小时采用

      优点:

      ​ 可以依赖索引取值

      缺点:

      ​ 浪费资源

    • 生成器生成式:若数据量过大时采用

    • (line for line in range(1, 6))--->g生成器(1, 2, 3, 4, 5)

      优点:

      ​ 节省资源

      缺点:

      ​ 取值不方便

      # 生成一个有1000个值的生成器
      g = (line for line in range(1, 1000001))
      # <generator object <genexpr> at 0x00000203262318E0>
      print(g)
      
      # 列表生成式实现
      list1 = [line for line in range(1, 1000001)]
      print(list1)
      
      

    匿名函数

    • 无名字的函数

      左边是参数, 右边是返回值

      lambda :
      PS: 原因,因为没有名字,函数的调用 函数名 + ()
      匿名函数需要一次性使用。
      注意: 匿名函数单独使用毫无意义,它必须配合 “内置函数” 一起使用的才有意义

    内置函数

    • python内部提供的内置方法

      max , min , sorted , map , filter

      dict1 = {
          'tank': 1000,
          'egon': 500,
          'sean': 200,
          'jason': 500
      }
      print(max(dict1, key=lambda x:dict1[x]))  #max,最大。排序根据ASCII自码表排序的
      
      print(min(dict1,key=lambda x:dict1[x]))# 最小的
      
      new_list = sorted(dict1,key=lambda x: dict1[x],reverse=True)
      print(new_list)
      
  • 相关阅读:
    一个秒杀系统的设计
    2018年终总结-从我所在的团队回首一年技术变迁
    温习LOGO语言
    微信公众平台配置-笔记
    Spring mongotemplate使用
    三种方法实现MNIST 手写数字识别
    Python 实现0-1背包
    Python 实现快速排序和随机快速排序
    Spring+SpringMVC+Mybatis搭建的网站的处理流程总结
    Mybatis功能架构及执行流程
  • 原文地址:https://www.cnblogs.com/lishuangjian/p/11861948.html
Copyright © 2020-2023  润新知