11.1 range()函数
功能 生成一个指定的数字序列
参数 start,stop[,step] step:步进 可正可负 默认为1
返回值 可迭代的对象 数字序列
res range(10) #转为list列表数据 print(list(res)) #转为for循环 for i in range(10): print(i) #转为迭代器 使用next 函数调用 ree iter(res) print(next(ree))
11.2 zip()函数
功能 可接收多个可迭代对象 然后把每个可迭代对象中的第i个元素组合在一起 形成一个新的迭代器
参数 *iterables 任意个可迭代对象
返回值 返回一个 元组 的迭代器
var1 12345 var2 [ a , b , c , d ] var3 ( A , B , C , D ) zip1 zip(var1,var2,var3) print(zip1,type(zip1)) for i in zip1: print(i) ( 1 , a , A ) ( 2 , b , B ) ( 3 , c , C ) ( 4 , d , D )
zip()与运算符结合可以用来拆解一个列表 *
var2 [ a , b , c ] var3 [ A , B , C ] zip1 zip(var2,var3) print(list(zip1)) print(zip(var2,var3)) # 迭代器对象 print(*zip(var2,var3)) # 组合好的多个元组数据 v2,v3 zip(*zip(var2,var3)) print(var3 list(v3) and var2 list(v2)) print(v2,v3)11.3 其他内置函数
11.3.1 数据类型相关内置函数
int(); float(); bool(); complex(); str(); list(); tuple(); dict(); set();
11.3.2 变量相关函数
id() 获取当前数据的ID标识
type() 获取当前数据的类型字符串
print() 打印数据
input() 获取输入的数据
isinstance() 检测是否为指定的数据类型
11.3.3 数学相关函数
abs() 返回一个数的绝对值 sum(iteralble[,start])从start开始自左向右对iterable中的项求和并返回总值
print(sum([1,5,3,8])) 获取最大 最小值 max(),min() print(max([6,9,1])) print(max(6,9,1,88)) 幂运算 返回x的y次幂,p为取余 pow(x,y,p) round(number[,ndigits])
返回number舍入到小数点后ndigits位精度的值
若ndigits被省略或为None 返回最接近输入值的整数
r round(3.1415926,6)
print(r) round(2.5) 奇进偶退 1.5 2 2.5 2
print(round(2.5)) #2 print(round(2.6)) #3 print(round(3.6)) #411.4 进制相关函数及字符集 了解
bin() 数值类型转为二进制
int() 二进制转为整型
oct() 转为八进制 01234567
hex() 转为十六进制 0123456789abcdef
ascii 字符转换
A-Z 65-90
a-z 97-122
0-9 48-57
将字符转为ascii
print(ord( a ))
将ascii转为字符
print(chr(65))
Unicode
12 内置函数-高阶函数12.1 sorted()排序
运行原理 把可迭代数据里的元素 一个一个取出来 放到key函数中进行处理 并按照函数中return的结果进行排序 返回一个新的列表 参数 iterable 可迭代对象(容器类型数据 range数据序列 迭代器) reverse 可选 是否反转 默认为False key 可选 函数 可自定义或内置 返回值 **排序后的结果**
arr [3,7,-9,8,23,4] res sorted(arr,reverse True) re sorted(arr,key abs) print(res) print(re) # [3, 4, 7, 8, -9, 23] # 自定义函数 def fu(n): return n % 2 r sorted(arr,key fu) print(r)
arr [3,7,-9,8,23,4] R sorted(arr,key lambda x:x%2) print(R)
12.2 map()
功能 对传入的可迭代数据中的每个元素进行处理 返回一个新的迭代器 参数 func 函数 自定义|内置函数 iterables 可迭代数据 返回值 **迭代器**把一个字符串数字的列表转为整型的数字列表
varlist [ 1 , 2 , 3 , 4 ] newlist [] for i in varlist: newlist.append(int(i)) print(newlist) # map()函数处理 res map(int,varlist) print(res,type(res)) # 返回的是迭代器!! print(tuple(res)) #!! print(set(res))[1,2,3,4] [1,4,9,16]
alist [1,2,3,4] res1 map(lambda x:x**2,alist) print(list(res1))[ a , b , c , d ] [65,66,67,68]
blist [ a , b , c , d ] re2 map(lambda x:ord(x)-32,blist) print(list(re2))
12.3 reduce()
from functools import reduce
reduce(function, iterable[, initializer])
功能 每次从iterable中取出两个元素 放入到func函数中进行处理 得出一个计算结果 然后把这个计算结果和iterable中的第三个元素 放入到func函数中继续运算 得出的结果和之后的第四个元素 加入到func函数中进行处理 以此类推 直到最后元素都参与了运算 参数 func 内置函数、自定义函数 iterable 可迭代对象 返回值 最终的运算处理结果 注意 使用reduce函数时 需要导入from functools import reduce
实例 1. [5,2,1,1] 5211 整型
# 普通方法 varlist [5,2,1,1] for i in varlist: res str(i) res int(res) print(res,type(res)) # 使用reduce def myfunc(x,y): return x*10 y res reduce(myfunc,varlist) print(res,type(res))
实例 2. 字符串转为数字不使用int函数 456 456
from functools import reduce
# 定义函数 给定一个字符串数字 返回一个整型的数字
def fuc(s):
vardict { 0 :0, 1 :1, 2 :2, 3 :3, 4 :4, 5 :5, 6 :6, 7 :7}
return vardict[s]
# 1.先使用map函数把数字字符串 转为整型的数字
it1 map(fuc, 456 )
# 2.把数字列表中的值 使用lambda进行二次处理
it2 reduce(lambda x,y:x*10 y, it1)
print(it2)
12.4 filter() 过滤器
filter(func,iterable) 功能 过滤数据 把iterable中的每个元素拿到func函数中进行处理 若函数返回True就保留 否则丢弃 参数 func 自定义函数 iterable 可迭代数据 返回值 保留下来的数据组成的 迭代器
示例 保留所有的偶数 丢弃所有的奇数
varlist [1,2,3,4,5,6,7,8,9] # 普通方法 newlist [] for n in varlist: if n % 2 0: newlist.append(n) print(newlist) # 使用filter def fun(n): if n % 2 0: return True else: return False it filter(fun,varlist) print(it) * 另一版 it filter(lambda x:True if x % 2 0 else False , varlist) print(it,list(it))



