学习日志2.3

学习日志2.3

  1. map 和reduce

    1. map

      将序列中的元素按照给定的标准转换成新的序列

      函数要求:

      有n个参数(对应输入序列的元素)

      有一个返回值(对应输出序列的元素)

      nums1 = [12, 34, 54, 34, 56, 67, 2]
      nums2 = list(map(lambda x: x % 10, nums1))  # map输出的是序列,需要转换
      
      nums3 = map(lambda x, y: x + y, nums1, nums2)
      print(list(nums3))
      # 练习:将以下两个列表按照下面的要求转换字典: {'苹果': 1823, '小爱同学':22221, '耳机': 891, '天猫精灵': 78}
      names = ['苹果', '小爱同学', '耳机', '天猫精灵']
      nums = [1823, 22221, 891, 78]
      
      a = map(lambda x, y: (x, y), names, nums)
      print(dict(a))
      
      
    2. reduce

      按照制定规则对序列中的元素进行合并操作

      函数要求:

      有且只有两个参数(第一个参数第一次指向初始值,之后指向上一次的计算结果

      第二个参数是序列中的每个元素)

      一个返回值(返回值决定合并改制)

      nums1 = [12, 34, 54, 34, 56, 67, 2]
      result = reduce(lambda total, x: total + x % 10, nums1, 0)
      print(result)
      
      # 练习1:求所有的数的个位的和
      nums = [23, 34, 56, 67, 8]
      result = reduce(lambda total, x: total + x % 10, nums, 0)
      print(result)
      # 练习2:求所有的元素的数值和
      nums = [23, '78.9', 9, '10']
      result = reduce(lambda total, x: total + float(x), nums, 0)
      print(result)
      # 练习3:求所有数字的乘积
      nums = [23, 8.9, 'abc', True, '2']
      
      result = reduce(lambda total, x: total * x if type(x) in (float, int) else total, nums, 1)
      print(result)
      
  2. 模块

    # 一个py文件就是一个模块
    # python中可以在一个模块中使用另一个模块中所有的全局变量
    """
    import 模块名   导入指定模块,导入后通过点的形式取用模块内容
    from 模块名 import 变量1、变量2…… 导入模块中部分变量
    import 模块名 as 重命名
    from 模块名 import 变量 as 重命名
    
    通配符
    from 模块名 import *   导入模块中所有全局变量
    """
    
    # 导入模块是将该模块全部执行一遍
    # 每一个模块的导入只会被执行一次
    
    # 导入屏蔽语句
    # 在被导入时,让部分代码不被执行
    
    if __name__ == '__main__':
        pass
    
  3. # import 包.模块名
    # 使用方法 包.模块名.变量名
    
    # import 包.模块名 as 重命名
    
    # from 包 import 模块
    
    # from 包.模块 import 变量
    
    import test.p1 as p1
    import test.p2 as p2
    
    p1.func2()
    p2.func1()
    
    # __init__文件  在导入包时 该文件最先被执行
    # 可以通过该文件修改模块或者变量的调用方式
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值