def use_filer(l):
"""
获取指定列表/元组中的奇数
:param l: lsit/tuple
:return:
"""
rest = filter(lambda n:n % 2 != 0,l)
return rest
if __name__ == '__main__':
l = [1,2,3,4,5,6,7,8,9]
rest = use_filer(l)
print(list(rest))

  结果

[1, 3, 5, 7, 9]
filter函数的原理
def is_even(x):
return x%2==0
tmp = filter(is_even,range(10))
list(tmp)
#最后一定要按照原来的类型转换回来
通过函数f筛选序列中的元素 filter(f,eq)
eq:待过滤的序列 f:过滤规则 tmp = filter(lamda n : n % 2 == 0,range(10))

map是python内置函数,会根据提供的函数对指定的序列做映射。

map()函数的格式是:

map(function,iterable,...)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。 把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
def use_filer(l):
"""
获取指定列表/元组中的奇数
:param l: lsit/tuple
:return:
"""
rest = filter(lambda n:n % 2 != 0,l)
return rest
if __name__ == '__main__':
l = [1,2,3,4,5,6,7,8,9]
rest = use_filer(l)
print(list(rest)) def pow_number(l):
"""
给定列表,放回每一项的立方
:param l:
:return:
"""
rest_list = []
for x in l:
rest_list.append(x*x*x)
return rest_list def pow_number_map(l):
"""
:param l:
:return:
"""
#return map(f,l)
return map(lambda n:n*n*n,l) if __name__ == "__main__":
rest = pow_number(l)
print(rest)
print("++++++++++++++++++++++")
rest = pow_number_map(l)
print(list(rest))

结果:

[1, 3, 5, 7, 9]
[1, 8, 27, 64, 125, 216, 343, 512, 729]
++++++++++++++++++++++
[1, 8, 27, 64, 125, 216, 343, 512, 729]

from functools import reduce
def get_sum(l):
"""
求和
:param l:
:return:
"""
rest = 0
for i in l:
rest += i
return rest
def get_sum_use_py(l):
"""
使用内置函数
:param l:
:return:
"""
return sum(l)
def get_sum_use_reduce(l):
"""
使用reduce函数求和
:param l:
:return:
"""
return reduce(lambda n,m:n + m,l) if __name__ == "__main__":
l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(get_sum(l))
print(get_sum_use_py(l))
print("!!!!!!!!!!!!!!!!!!!")
print(get_sum_use_reduce(l))

结果

python中的reduce
   python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。
如:

 def myadd(x,y):
return x+y
sum=reduce(myadd,(1,2,3,4,5,6,7))
print(sum)

#结果就是输出1+2+3+4+5+6+7的结果即28
当然,也可以用lambda的方法,更为简单:

 sum=reduce(lambda x,y:x+y,(1,2,3,4,5,6,7))
print sum

在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce.

 
 

最新文章

  1. RapidFloatingActionButton框架正式出炉
  2. 《CLR via C#》读书笔记(5)基元类型、引用类型和值类型
  3. What’s the difference between data mining and data warehousing?
  4. CSS动画 防止动画结束后,回归原位
  5. IOS字典NSDictionary与NSMutableDictionary知识点
  6. WCF 无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性
  7. MS Sqlserver 备份数据库SQL
  8. WPF拖动DataGrid中的数据到ListBox
  9. phpQuery用法
  10. Codeforces Round #250 (Div. 1) B. The Child and Zoo 并查集
  11. html,css所遇问题(一)
  12. 使用Thumbnails对一个文件夹下的所有图片进行压缩处理
  13. ACM 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
  14. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试
  15. vm中的nat模式不能连接到主机,以及不能上网
  16. h5软键盘弹起 底部按钮被顶起问题解决
  17. python中的猴子补丁Monkey Patch
  18. Golang sync
  19. tensorflow进阶篇-5(反向传播2)
  20. linux shell脚本中 mode=${1:-sart} filename=${fileuser:-"filename"}

热门文章

  1. Elasticsearch 中为什么选择倒排索引而不选择 B 树索引
  2. CentOS系统优化一键配置脚本
  3. 记录编译QGIS(3.4+Qt5.11+VS2015)的整个过程
  4. 【Golang详解】go语言中并发安全和锁
  5. 深入理解和运用Pandas的GroupBy机制——理解篇
  6. linux c语言 rename的用法-rename() does not work across different mount points, even if the same file system is mounted on both
  7. linked-list-cycle leetcode C++
  8. linux 内核源代码情景分析——linux 内核源代码中的C语言代码
  9. hash 哈希表 缓存表
  10. SQL 添加列,删除列,修改列的类型