1. 函数
1.1 map()
map()
会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表
语法
map(function, iterable, ...)
# function -- 函数
# iterable -- 一个或多个序列
实例:
result = map(lambda x: x ** 2, [1, 2, 4, 5])
print(list(result))
result = map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6])
print(list(result))
1.2 reduce()
reduce()
函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
注意:Python3.x reduce() 已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数:
from functools import reduce
语法
reduce(function, iterable[, initializer])
# function -- 函数,有两个参数
# iterable -- 可迭代对象
# initializer -- 可选,初始参数
# 返回函数计算结果。
实例
扫描二维码关注公众号,回复:
12678762 查看本文章

from functools import reduce
result = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
print(result)
1.3 filter()
filter()
函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用list()
来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中
语法
filter(function, iterable)
# function -- 判断函数。
# iterable -- 可迭代对象。
# 返回一个迭代器对象
实例
# 筛选所有的偶数
result = filter(lambda x: x % 2 == 0, [1, 2, 4, 5, 8])
print(list(result))
# 筛选所有的奇数
result = filter(lambda x: x % 2 != 0, [1, 2, 4, 5, 8])
print(list(result))
1.4 sorted()
sorted()
函数对所有可迭代的对象进行排序操作。
语法
sorted(iterable, key=None, reverse=False)
# iterable -- 可迭代对象。
# key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
# reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
# 返回重新排序的列表
实例
result = sorted([1, 29, 2, 3])
print(result)
#升序
result = sorted([0, 29, 2, 0], reverse=True)
print(result)
#降序
#将所有0排前面,其他元素不变
result = sorted([0, 9, 8, 0, 16], key=lambda x:0 if x==0 else 1)
print(result)
#[0, 0, 9, 8, 16]
2. 模块
导入模块:
import 模块1,模块2
(导入模块的所有子模块)from 模块 import 模块中的子模块1,子模块2
(可以导入模块中的几个部分)- 模块名后使用
as
时:直接把 as 后的名称与导入模块绑定
在模块内部,通过全局变量 __name__
可以获取模块名(即字符串)
模块的查询路径:
import sys
print(sys.path)
查找模块定义的名称:dir()
dir(模块名)
- 如果没有给定参数,那么
dir()
函数会罗列出当前定义的所有名称
查看模块的说明文档:__doc__
显示模块的绝对路径:__file__
__name__
:
当在模块内部执行__name__的值为__main__
__name__:当模块被导入时,显示的是模块的名称
3. 包
- 包是一种用“点式模块名”构造 Python 模块命名空间的方法。
- 例如,模块名
A.B
表示包A
中名为B
的子模块。正如模块可以区分不同模块之间的全局变量名称一样,点式模块名可以区分 NumPy 或 Pillow 等不同多模块包之间的模块名称。 - Python 只把含
__init__.py
文件的目录当成包。这样可以防止以string
等通用名称命名的目录
包架构:
顶级包/
__init__.py # 初始化
包1/
__init__.py
1.py
2.py
包2/
__init__.py
1.py
2.py
包3/
__init__.py
1.py
2.py