python基础学习第六天

6.1内置函数

6.1.1 filter函数

6.1.2 map函数

6.1.3 reduce函数

6.1.1:filter (函数名字, 序列) 过滤器对象

filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list

# 过滤列表中名称是xiong的字符串

			name=["xiong","yuan"]

			def fi(n):
			    if n!="xiong":
			        return n

			let=filter(fi,name)
			print(list(let))
				# 结果 [‘yuan‘]

# 再比如过滤掉数字为奇数的行

			def number(n):
			    if n %2 ==1:
			        return n
			jnum=filter(number,range(1,20))		# 过滤对象内存地址:<filter object at 0x000000000250F828>
			print(list(jnum))					# 打印结果就是:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

6.1.2 map (函数名字, 序列)

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

map()函数是python内置的高阶函数,对传入的list的每一个元素进行映射,返回一个新的映射之后的list

			def x(f):
			    return f*f 		#从9开始每次相乘

			num=map(x,range(9))
			print(list(num))				   0  1  2  3   4   5  6    7  8  每个值都乖以自己

# 结果: 等于就是每个值的平方 [0, 1, 4, 9, 16, 25, 36, 49, 64]

注意:map()函数不改变原有的 list,而是返回一个新的 list。

由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。

			x=["ali","jic","you"]
			def name(x):
			    return "a" + x     
			na=map(name,x)     			# 跟filter差不多,但如果将map改为filter那么它返回的结果就是ali,jic,you
			print(list(na))
				# 结果: [‘aali‘, ‘ajic‘, ‘ayou‘]

# 扩展信息: http://www.cnblogs.com/superxuezhazha/p/5714970.html

    6.1.3 reduce(函数,对象或序列)

reduce()   # 想用这个方法必须加上如下参数    reduce的结果就是一个值

		 from functools import reduce 

		lambda a,b: a + b

		## 示例 先调用这个函数 
		from functools import reduce

		# add = lambda a,b: a+b
		# print(add(1,2))			# 结果3

		def add1(x,y):
		    return x + y

		print(reduce(add1,range(10)))	# 结果45
时间: 2024-10-14 09:43:38

python基础学习第六天的相关文章

python基础学习日志day5-各模块文章导航

python基础学习日志day5---模块使用 http://www.cnblogs.com/lixiang1013/p/6832475.html python基础学习日志day5---time和datetime模块 http://www.cnblogs.com/lixiang1013/p/6848245.html python基础学习日志day5---random模块http://www.cnblogs.com/lixiang1013/p/6849162.html python基础学习日志da

Python 基础学习 网络小爬虫

<span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imgli

python基础学习05(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #dict{键:值} #哈希 #注:字典是无顺序的,所以你懂的 #创建与赋值 dict1={} dict2={'name':'apply','avg':24,'sex':'man'} print dict1,dict2

Python基础学习(九)

Python 多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和程序的出口.

python基础学习07(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #file与input output #文件对象 #简单说来,就是写入和读取的方式 #file(),open()2个操作都是一样的,一般推荐open() #语法 # open(name[, mode[, bufferin

python基础学习08(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #异常 """ NameError: 尝试访问一个未申明的变量 ZeroDivisionError:  除数为零 SyntaxError: 解释器语法错误 IndexError: 请求的索引超出序列范

Python基础学习(十)

Python I/O模型 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 概念说明 在进行解释之前,首先要说明几个概念: 用户空间和内核空间 进程切换 进程的阻塞 文件描述符 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件

python基础学习12(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #python class #面向对象编程oop思想,3个特性:封装.继承.多态,在其他方面的功能,比如重载,模拟等,也可以自定义自己需要的类 #在python中,面向对象主要2个:类和类实例 #类与实例 #类与实例有关

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo