python学习笔记 map&&reduce
---恢复内容开始---
1.map
1)map其实相当对吧运算符进行一个抽象,返回的是一个对象,但是这里不知道为什么不可以对一个map返回变量打印两次,难道是因为回收了?
def f(x):
return x*x tmp = map(f,range(6))
tmps = map(str,range(6))
print (list(tmp))
#print (list(tmps))
print (type(range(6)))#range返回的就是range类型<class 'range'>
print (set(tmps))
print(list(tmps))#此时的输出不在是range6的List而是一个空的[]
2)reduce 需要两个以上的参数才能使用,一般是作用域一个list上的,比如下面的求和
tadd = reduce(add,range(6))
print (tadd)
tadd = reduce(add, [x for x in range(6) if x%2 != 0])
print (tadd)
reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
# -*- coding: utf-8 -*-
"""
Spyder Editor This is a temporary script file.
"""
from functools import reduce
tadd = reduce(add,range(6))
print (tadd)
tadd = reduce(add, [x for x in range(6) if x%2 != 0])
print (tadd)
tadd = reduce(fn,[x for x in range(9) if x%2 != 0])
print (tadd)
3)对于一些版本的简化:
from functools import reduce
def f(x):
return x*x def add(x1,x2):
return x1+x2
def fn(x1,x2):
return 10*x1+x2 def char2num(s):
return {'':0,'':1,'':2,'':3,'':4,'':5,'':6,'':7,'':8,'':9}[s] def str2int(s):
def char2num(s):
return {'':0,'':1,'':2,'':3,'':4,'':5,'':6,'':7,'':8,'':9}[s] def fn(x1,x2):
return 10*x1+x2
return reduce(fn,map(char2num,s))
def str2int_2(s):
return reduce(lambda x,y:x*10+y,map(char2num,s)) tmp = map(f,range(6))
tmps = map(str,range(6))
print (list(tmp))
#print (list(tmps))
print (type(range(6)))#range返回的就是range类型<class 'range'>
print (set(tmps))
print(list(tmps))#此时的输出不在是range6的List而是一个空的[] tadd = reduce(add,range(6))
print (tadd)
tadd = reduce(add, [x for x in range(6) if x%2 != 0])
print (tadd)
tadd = reduce(fn,[x for x in range(9) if x%2 != 0])
print (tadd)
print (reduce(fn,(map(char2num,''))))
print (str2int(''))
print (str2int_2(''))
---恢复内容结束---
python学习笔记 map&&reduce的更多相关文章
- Python学习笔记 - map reduce
#!/usr/bin/env python3 # -*- coding: utf-8 -*- def f(x): return x * x r = map(f, [1, 2, 3, 4, 5, 6, ...
- Python学习笔记之map、zip和filter函数
这篇文章主要介绍 Python 中几个常用的内置函数,用好这几个函数可以让自己的代码更加 Pythonnic 哦 1.map map() 将函数 func 作用于序列 seq 的每一个元素,并返回处理 ...
- Python学习笔记(八)
Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...
- Python学习笔记之函数
这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...
- Python学习笔记之基础篇(-)python介绍与安装
Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...
- Python学习笔记(四)函数式编程
高阶函数(Higher-order function) Input: 1 abs Output: 1 <function abs> Input: 1 abs(-10) Output: 1 ...
- Python 学习笔记(下)
Python 学习笔记(下) 这份笔记是我在系统地学习python时记录的,它不能算是一份完整的参考,但里面大都是我觉得比较重要的地方. 目录 Python 学习笔记(下) 函数设计与使用 形参与实参 ...
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- 【python学习笔记】4.字典:当索引不好用时
[python学习笔记]4.字典:当索引不好用时 字典是python中唯一内建的map类型 创建: key可以为任何不可改变的类型,包括内置类型,或者元组,字符串 通过大括号: phonebook={ ...
随机推荐
- 吾八哥学Python(一):搭建Python开发环境(Windows)
学习Python的第一步当然是要配置一下开发环境了,这里记录一下本人在windows 10(64位)下配置Python开发环境的过程,供跟我一样的新手参考一下. 一.下载Python安装包 目前最新的 ...
- BeginInvoke()使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- 如何才能通俗易懂的解释javascript里面的"闭包"?
看了知乎上的话题 如何才能通俗易懂的解释javascript里面的‘闭包’?,受到一些启发,因此结合实例将回答中几个精要的答案做一个简单的分析以便加深理解. 1. "闭包就是跨作用域访问变量 ...
- (转)Java Socket编程
原文出自:http://www.cnblogs.com/rocomp/p/4790340.html Socket是网络驱动层提供给应用程序编程接口和一种机制.可以把Socket比喻成一个港口码头,应用 ...
- js 短信倒计时60s
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- web消息推送-goesay
原文:http://www.upwqy.com/details/22.html 1 GoEasy简介: GoEasy - Web实时消息推送服务专家 最简单的方式将消息从服务器端推送至客户端 最简单的 ...
- linux C 文件操作之fgets()
1. fgets(...)从标准设备读数据. 原型:fgets(s,n,stdin); 假设在控制台下,我们可以用fgets(...)替代gets(),读入键盘输入的信息,fget ...
- 从json_encode过来的的字符串被返回到html页面时的解析
在工作过程中经常需要向服务器请求数据.在需要返回多个值的时候,使用json_encode处理数组然后返回是很常用的做法.如果没有指定返回数据类型的情况下,默认返回的是json格式的字符串.那么需要将这 ...
- Leetcode题解(十一)
31.Next Permutation 题目 这道题目的意思是给定一个序列,找出其按照字典顺序的下一个顺序,如果给定顺序是字典中的最后一个顺序,其下一个顺序则为字典中的第一个顺序.比如: 1,2,3, ...
- escape、unescape、encodeURIComponent、decodeURLComponent
项目中遇到的问题,当我设置一个标签的属性,这个属性值含有js内容,这样就会被执行产生安全问题 解决办法:,可以将后端给的内容先encodeURIComponent,获取的时候再decodeURICom ...