map

map(func, list)list中的数字,一个一个运用到func中,常和lambda一起用。

nums = [1, 2, 3, 4, 5]
[*map(lambda x: x**2, nums)]

输出:

[1, 4, 9, 16, 25]

这里有个比较骚的用法

func_list = [ func1, func2, func3, func4] #func1...是事先定义好的函数
for i in range(1,10):
v=map(lambda x: x(i), func_list)
print(v)

v输出是有4个值的列表,每个值都是把当前 i 运用到func_list的结果。

filter

filter(func, list)和map有点像,只不过func的输出结果是布尔类型,并且把是True的筛选出来。下面代码是筛选出1-14之间的偶数:

nums = range(1,15)
list(filter(lambda x: x%2==0, nums))

输出是:

[2, 4, 6, 8, 10, 12, 14]

reduce

reduce(func, list) 参数和签名的map, filter类似,但是是不同的有以下三点:

  • 取数方法,func接收2个参数。map, filterfunc都需要1个参数。
  • reduce第一次是取2个参数。map, filter都是从list中一次取一个
  • reduce需要从functools导入

reduce的运行方式是这样:

  • 第一次:取list中的前两个数字,输入到func中,结果保存
  • 第二次:把保存的结果、第三个数,输入到func中,结果保存
  • 第三次:保存的结果、第四个数输入到func中。直到没有可以取的数字。

示例

比如求,2,3,4,5连乘的结果,如果用for:

nums = [2, 3, 4, 5]
pro = 1
for i in nums:
pro = pro * i
print(pro)

用reduce则:

from functools import reduce
nums = [2, 3, 4, 5]
reduce(lambda x,y:x*y, nums)

两个的结果都是:120

enumerate

enumerate(iter, start=0) 中的iter是可迭代的序列,比如list, tuple,str等。生成的是惰性对象。可用于迭代和格式化输出。

seasons=['春天','夏天','秋天','冬天']
[*enumerate(seasons)]

输出:

[(0, '春天'), (1, '夏天'), (2, '秋天'), (3, '冬天')]

zip

zip()的参数是可迭代的对象,比如list, str等等。输出的结果是zip对象,可以用{*zip_obj}来解。作用是**把参数中的元素,一一对应成tuple。

names = ['小明', '小红', '小强', '小李']
stu_num = [1,2,3,4]
score =[96,90,60, 82]
z1=zip(names, stu_num, score)
print({*z1})

输出是:

{('小明', 1, 96), ('小红', 2, 90), ('小强', 3, 60), ('小李', 4, 82)}

最新文章

  1. javaIO-学习笔记
  2. [leetcode]Binary Tree Maximum Path Sum
  3. 设计模式学习之迭代器模式(Iterator,行为型模式)(17)
  4. iOS CoreData技术学习资源汇总
  5. js实现网页防止被iframe框架嵌套及几种location.href的区别
  6. 夺命雷公狗—angularjs—25—angular内置的方法(高级)
  7. 1.2 XmlBeanFactory的实例化
  8. Domain Shutdown Error(JBAS010850)
  9. AutoIt 函数学习之----WinWaitActive
  10. C++出现计算机术语5
  11. 小说接入UC浏览器内核技术对话(一)
  12. 洛谷 P1903 [国家集训队]数颜色 / 维护队列
  13. No space left on device Linux系统磁盘空间已满
  14. pythonのsqlalchemy简单查询
  15. SpringSecurity实现记住我功能
  16. git使用命令记录
  17. 【推荐】asp.net 页面的生命周期
  18. 【laravel5.6】 Laravel 数据迁移给表和字段添加注释
  19. Eclipse Git 克隆项目的时候出现Internal error; consult Eclipse error log
  20. Win2003不显示移动硬盘、U盘解决方法

热门文章

  1. 留学Essay写作关键:Intensive Reading
  2. python 嵌套爬取网页信息
  3. hdu 1950 Bridging signals 求最长子序列 ( 二分模板 )
  4. 手动搭建简单的vue项目
  5. springboot - 返回JSON error 从自定义的 ErrorController
  6. CentOS 7 下oracle 11G R2 ADG 搭建
  7. Java算法练习——盛最多水的容器
  8. Sublime Text与LaTeX的结合
  9. 实验吧web-中-忘记密码了
  10. Android群英传神兵利器读书笔记——第二章:版本控制神器——Git