python基础学习第六天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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


本文出自 “xiong” 博客,请务必保留此出处http://xiong51.blog.51cto.com/5239058/1965681

以上是关于python基础学习第六天的主要内容,如果未能解决你的问题,请参考以下文章

python基础学习第六天

Python 3 学习的第六天——Python基础

python基础学习第六天

python学习第六天:python基础(dictset)

python基础(第六天)

Python全栈开发学习笔记-06.第六天