Python基础—08-函数使用(02)
<h1 id="函数使用" data-source-line="1">函数使用 使用场景: 在使用列表时,很多时候我们都不会一下子使用全部的数据,通常都是一个一个使用,但是数据量较小的时候,对于内存的占用可以不用过于关心;但是当数据量较大时,就会出现内存使用突然增大的情况。为了解决内存占用突然增大的问题,python中引入了生成器的概念 使用方式:
lt = (i i range(2<span style="color: #008000">#<span style="color: #008000"> 转换为列表<span style="color: #008000">
<span style="color: #008000"> print(list(lt))<span style="color: #008000">#<span style="color: #008000"> 一个一个获取,取完后继续使用next会报错<span style="color: #008000"> <span style="color: #008000"> print(next(lt))<span style="color: #008000">#<span style="color: #008000"> 遍历
i range(1,n+1t = test(5<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 生成器对象 <span style="color: #0000ff">print<span style="color: #000000">(t) <span style="color: #008000">#<span style="color: #008000"> 一次一个获取<span style="color: #008000"> <span style="color: #008000"> print(next(t))<span style="color: #008000"><span style="color: #008000"> print(next(t))<span style="color: #008000"><span style="color: #008000"> print(next(t))<span style="color: #008000">#<span style="color: #008000"> 遍历<span style="color: #008000"> <span style="color: #008000"> for i in t:<span style="color: #008000"><span style="color: #008000"> print(i)<span style="color: #008000">#<span style="color: #008000"> 转换为列表 总结:
定义:能够使用for-in进行遍历,并且可以通过next函数依次获取元素的对象 说明:
collections = (i i range(10(isinstance(lt,Iterator))
定义:能够使用for-in进行遍历的对象,都是可迭代对象
map
lt = [1,2,3,4<span style="color: #0000ff">def<span style="color: #000000"> double(x):
<span style="color: #0000ff">return x * 2 <span style="color: #008000">#<span style="color: #008000"> 返回一个生成器<span style="color: #008000"> <span style="color: #008000"> m = map(double,lt)m = map(<span style="color: #0000ff">lambda x: x*<span style="color: #000000">x,lt) <span style="color: #0000ff">print(list(m))
filter
lt = [1,4,5<span style="color: #008000">#<span style="color: #008000"> 提取偶数
f = filter(<span style="color: #0000ff">lambda x: x%2==<span style="color: #000000">0,lt) <span style="color: #0000ff">print(list(f))
reduce
functools lt = [1,5<span style="color: #000000">]
<span style="color: #008000">#<span style="color: #008000"> 求和<span style="color: #008000">
<span style="color: #008000"> s = reduce(lambda x,y: x+y,lt)<span style="color: #008000"><span style="color: #008000"> 转换为12345s = reduce(<span style="color: #0000ff">lambda x,y: x*10+<span style="color: #000000">y,lt)
IloveYOUmoreTHANiCANsay => I love you more than i can say
可以使用递归 |