1. map和reduce
1)map - 队序列中的元素进行变换或者合并
-
用法一:
map(函数、序列) — 将原序列中的元素,按照函数给定的标准转换成新的序列。
函数的要求:
是一个函数
有一个参数,指向序列中的元素
需要一个返回值(返回值就是新序列中的元素)
# 获取nums中所有元素的个位数,产生一个新的列表
nums = [19, 25, 66, 88, 45]
result = map(lambda item: item % 10, nums)
print(list(result))
-
用法二:
map(函数,序列1,序列2…序列n)
函数的要求:
是一个函数
有n个参数(分别指向后面的n个序列中的元素)
需要一个返回值(返回值就是新序列中的元素)
# 产生一个新序列,每个元素是分数和
math = [19, 22, 33, 55]
chi = [20, 30, 50, 60]
result = map(lambda item1, item2: item1 + item2, math,chi)
print(list(result))
# 练习:将以下两个列表按照下面的要求转换字典: {'苹果': 1823, '小爱同学':22221, '耳机': 891, '天猫精灵': 78}
names = ['苹果', '小爱同学', '耳机', '天猫精灵']
nums = [1823, 22221, 891, 78]
result = map(lambda item1, item2: (item1, item2), names, nums)
print(dict(result))
2)reduce - 按照指定规则对序列中的元素进行合并操作
-
用法一:
reduce(函数,序列,初始值)
函数的要求:
函数
有且只有两个参数(第一个参数第一次指向初始值;从第二次开始指向上一次的计算结果,第二个参数指向序列中的每个元素)
有一个返回值(返回值决定合并规则)
from functools import reduce
# 练习1:求所有的数的个位的和
nums = [23, 34, 56, 67, 8]
result = reduce(lambda item1, item2: item1 + item2 % 10, nums, 0)
print(result)
# 练习2:求所有的元素的数值和
nums = [23, '78.9', 9, '10']
result = reduce(lambda item1, item2: item1 + float(item2), nums, 0)
print(result)
# 练习3:求所有数字的乘积
nums = [23, 8.9, 'abc', True, '2']
result = reduce(lambda item1, item2: item1 * (item2 if type(item2) in [int, float] else 1), nums, 1)
print(result)
一、模块和包
模块
1.什么是模块
- 一个py文件就是一个模块
- python中可以在一个模块中去使用另外一个模块(命名要规范)中所有的全局变量,但是得先导入
2.导入模块
1)直接导入模块
- import 模块名 - 导入指定模块,导入后需要通过‘模块名.xxx’的形式去使用模块中的内容
2)直接导入模块中的变量
- from 模块名 import 变量名1,变量名2… - 导入指定模块中的指定变量;导入后直接使用变量
3)重命名
- import 模块名 as 新模块名 - 给模块重命名,重命名后使用新名字
- from 模块名 import 变量名1 as 新变量名1,变量名2 as 新变量名2 … - 导入的时候给指定变量重命名
4)通配符
- from 模块名 import * - 导入指定模块中所有的全局变量
3.导入模块的原理
-
不管以什么样的方式导入模块,在模块导入的时候系统会自动进入被导入的模块,将模块中的代码全部执行一遍
-
python中导入模块的时候会自动检测被导入的模块之前是否已经导入过,如果导入过不会重复导入
-
if __ name__ == ‘__ main __’: - 这个if里面的代码不会被其他模块执行,只能被自己执行
包
1.什么是包
- 包就是用来管理多个模块的一种特殊的文件夹(包含有__ init __.py文件的文件夹)
2.怎么使用包中模块的内容
-
通过包导入内容的时候,会先执行__ init __.py的内容
-
方法一:
导入: import 包.模块
使用: 包.模块.内容
-
方法二:
导入: import 包.模块 as 新名字
使用: 新名字.内容
-
方法三:
导入: from 包 import 模块
使用: 模块.内容
-
方法四:
导入: from 包.模块 import 变量
使用: 直接使用内容
6060

被折叠的 条评论
为什么被折叠?



