重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
map() 函数接受两个参数,一个是函数,一个是可迭代对象(Iterable), map 将传入的函数依次作用到可迭代对象的每一个元素,并把结果作为迭代器(Iterator)返回。
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了张湾免费建站欢迎大家使用!
举例说明,有一个函数 f(x)=x^2 ,要把这个函数作用到一个list [1,2,3,4,5,6,7,8,9] 上:
运用简单的循环可以实现:
运用高阶函数 map() :
结果 r 是一个迭代器,迭代器是惰性序列,通过 list() 函数让它把整个序列都计算出来并返回一个 list 。
如果要把这个list所有数字转为字符串利用 map() 就简单了:
小练习:利用 map() 函数,把用户输入的不规范的英文名字变为首字母大写其他小写的规范名字。输入 ['adam', 'LISA', 'barT'] ,输出 ['Adam', 'Lisa', 'Bart']
reduce() 函数也是接受两个参数,一个是函数,一个是可迭代对象, reduce 将传入的函数作用到可迭代对象的每个元素的结果做累计计算。然后将最终结果返回。
效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
举例说明,将序列 [1,2,3,4,5] 变换成整数 12345 :
小练习:编写一个 prod() 函数,可以接受一个 list 并利用 reduce 求积:
map() 和 reduce() 综合练习:编写 str2float 函数,把字符串 '123.456' 转换成浮点型 123.456
filter() 函数用于过滤序列, filter() 也接受一个函数和一个序列, filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False 决定保留还是丢弃该元素。
举例说明,删除list中的偶数:
小练习:用 filter() 求素数
定义一个筛选函数:
定义一个生成器不断返回下一个素数:
打印100以内素数:
python内置的 sorted() 函数可以对list进行排序:
sorted() 函数也是一个高阶函数,还可以接受一个 key 函数来实现自定义排序:
key 指定的函数将作用于list的每一个元素上,并根据 key 函数返回的结果进行排序.
默认情况下,对字符串排序,是按照ASCII的大小比较的,由于'Z' 'a',结果,大写字母Z会排在小写字母a的前面。如果想忽略大小写可都转换成小写来比较:
要进行反向排序,不必改动key函数,可以传入第三个参数 reverse=True :
小练习:假设我们用一组tuple表示学生名字和成绩: L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] 。用sorted()对上述列表分别按c成绩从高到低排序:
运用匿名函数更简洁:
在写python程序时,常能用到一些函数和方法,总结一下,保存起来,方便查询。
一、内置函数
# abs()获取数字绝对值
# chr(i)数字转换为字符类型
# divmod() 获取两个数值的商和余数
# enumerate() 将可遍历序列组合为索引序列
# float()转换为浮点数
# format() 格式化字符串
# int()转换为整数
# input() 接受用户输入内容
# len() 计算元素个数
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定数值的上舍整数
# open()打开文件并返回文件对象
# pow() 幂运算
# print()打印输出
# range() 生成器
# reversed()反转所有元素
# round()四舍五入求值
# sorted()对可迭代对象进行排序
# str() 转换为字符串
# sum() 求和
# set() 创建集合
# tuple() 将序列转换为元组
# zip()将可迭代对象打包成元组
二、方法
# append() 添加列表元素
# capitalize()首字母转换为大写
# count()字符出现次数
# close() 关闭文件
# decode() 解码字符串
# dict.keys() 获取字典所有的键
# find()字符串首次出现的索引
# f.read() 读取文件内容
# dict.update()更新字典
# dict.items() 获取字典键/值对
# dict.get() 返回指定键的值
# encode() 编码字符串
# list.sort() 排序列表元素
# index() 元素首次出现的索引
# isdigit() 判断字符串是否只由数字组成
# isupper() 是否所有字母都为大写
# isnum() 判断字符串是否由字母和数字组成
# islower() 是否所有字母都为小写
# isdecimal() 检查字符串是否只包含十进制字符
# isalpha() 检测字符串是否为纯字母
# random.shuffle()随机排序
# random.sample()返回无重复随机数列表
# random.choice() 返回一个随机元素
# random.randint() 生成指定范围的随机整数
# random.randrange() 生成指定范围的指定递增基数随机整数
# pop() 删除列表中的元素
# remove()删除列表中的指定元素
# strip()去除空格
# lstrip()去除左侧空格
# rstrip() 去除右侧空格
# readline() 读取单行内容
# root.after() Tkinter中等待一段时间后再执行命令
# str.isnumeric() 验证字符串是否为数字(适用于Unicode)
# split()分割字符串
# ord() 将字符转换为整数
# replace() 字符串替换
# ljust() 左对齐填充
# rjust() 左对齐填充
# readlines() 读取所有行内容
# datetime.datetime.now() 返回指定时区的本地日期时间
# datetime.datetime.today() 获取当前本地日期的date对象
# datetime.utcnow() 返回当前UTC时间的datetime对象
# time.strptime()把时间字符串解析为元组
# time.time()返回当前时间的时间戳
# time.sleep()暂停指定秒数
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收时间元组并返回时间戳
# os.getcwd() 获取当前工作目录
# os.listdir() 获取指定路径下的目录和文件列表
# os.makedirs() 递归创建目录
# os.rename() 重命名目录或文件
# os.path.exists() 判断路径是否存在
# upper() 全部转换为大写字母
# lower() 全部转换为小写字母
# sys.stdout.write() 标准输出打印
# sys.stdout.flush()刷新输出
# shutil.copy() 复制单个文件到另一文件或目录
# write() 写入文件内容
# winsound.Beep() 打开电脑扬声器
# zfill() 在字符串前面填充0
三、循环语句
# break终止当前循环
# continue 终止本循环进入下一次循环
# with open() as file 以with语句打开文件(数据保存)
四、转义字符
\ 行尾续行符
\' 单引号
\'' 双引号
\a 响铃
\e 转义
\n 换行
\t 横向制表符
\f 换页
\xyy 十六进制yy代表的字符
\\反斜杠符号
\b 退格
\000 空
\v 纵向制表符
\r 回车
\0yy 八进制yy代表的字符
\other 其他的字符以普通格式输出
Pos()功能在一个字符串中查找所包含的另一个字符串的起始位置。语法Pos ( string1, string2 {, start } )
参数string1:string类型,指定要从中查找子串string2的字符串string2:string类型,指定要在string1中查找的字符串start:long类型,可选项,指定从string1的第几个字符开始查找。缺省值为1返回值Long。函数执行成功时返回在start位置后string2在string1中第一次出现的起始位置。如果在string1中按指定要求未找到string2、或start的值超过了string1的长度,那么Pos()函数返回0。如果任何参数的值为NULL,Pos()函数返回NULL。用法Pos()函数在字符串查找时区分大小写,因此,"aa"不匹配"AA"。
拓展资料:
公式的运用
一、数字处理
1、取绝对值函数
公式:=ABS(数字)
2、取整函数
公式:=INT(数字)
3、四舍五入函数
公式:=ROUND(数字,小数位数)
二、判断公式
1、如果计算的结果值错误那么显示为空
公式:=IFERROR(数字/数字,)
说明:如果计算的结果错误则显示为空,否则正常显示。
2、IF语句的多条件判定及返回值
公式:IF(AND(单元格(逻辑运算符)数值,指定单元格=返回值1),返回值2,)
说明:所有条件同时成立时用AND,任一个成立用OR函数。
三、常用的统计公式
1、统计在两个表格中相同的内容
公式:B2=COUNTIF(数据源:位置,指定的,目标位置)
说明:如果返回值大于0说明在另一个表中存在,0则不存在。
如果,在此示例中所用到的公式为:B2=COUNTIF(Sheet15!A:A,A2)
2、统计不重复的总数据
公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))
说明:用COUNTIF函数统计出源数据中每人的出现次数,并用1除的方式把变成分数,最后再相加。
四、数据求和公式
1、隔列求和的应用
公式:H3=SUMIF($A$2:$G$2,H$2,A3:G3)或=SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)
说明:如果在标题行中没有规则就可以用第2个公式
2、单条件应用之求和
公式:F2=SUMIF(A:A,C:C)
说明:这是SUMIF函数的最基础的用法
五、查找与引用公式
1、单条件查找
说明:VLOOKUP是excel中最常用的查找方式
六、字符串处理公式
1、多单元格字符串的合并
说明:Phonetic函数只能合并字符型数据,不能合并数值。
2、截取结果3位之外的部分
说明:LEN计算总长度,LEFT从左边截总长度-3个。