一、高阶函数
1.map()
代码演示:
""" map(function,iterable) function:函数 iterable:可迭代对象 作用:将传入的函数依次作用于可迭代对象中的每一个元素,并把结果【Iterator】返回 """ #需求1:给一个已知列表中的元素求平方 def square(x): return x ** 2 list1 = [1,2,3,4,5] result1 = map(square,list1) #注意:map是一个类,表示一种数据类型,集合或者序列,使用类似于list,tuple,set print(result1) #<map object at 0x000001EE25431DA0> print(type(result1)) #<class 'map'> print(list(result1)) #[1, 4, 9, 16, 25] result2 = map(lambda x:x ** 2,list1) print(list(result2)) #str = 10 #需求2:将整型元素的列表转换为字符串元素的列表 #举例:[1,2,3,4]------>["1","2","3","4"] #str(1) ---- >字符串1 #注意:在使用系统函数之前,最好不要出现同名的变量 result3 = map(str,[1,2,3,4]) print(list(result3)) #需求3:已知两个整型列表,将两个列表中相同位置的元素相加,得到一个新的列表 def add(x,y): return x + y l1 = [1,2,3,4,5] l2 = [6,7,8,9,10] result4 = map(add,l1,l2) print(list(result4))
2.reduce()
代码演示:
from functools import reduce """ reduce(function,Iterable) :通过函数对参数列表中的元素进行累积 function:函数 Iterable:可迭代对象,一般使用列表 工作原理:用传给reduce的function先作用于list中第一个和第二个元素,用得到的结果和list中第三个元素计算。。。 reduce(add,[a,b,c,d]) add(add(add(a,b),c),d)---->递归 """ #需求1;求一个已知列表中元素的和 list1 = [1,2,3,4,5] def add(x,y): return x + y result1 = reduce(add,list1) print(result1) result2 = reduce(lambda x,y:x + y,list1) print(result2) #需求2:将列表[1,3,5,7,9]变换成整数13579 """ 分析: 13 = 1 * 10 + 3 135 = 13 * 10 + 5 1357 = 135 * 10 + 7 13579 = 1357 * 10 + 9 """ list2 = [1,3,5,7,9] def fn(x,y): return x * 10 + y result3 = reduce(fn,list2) print(result3) #需求3: #结合map函数,实现一个将str转换为int的函数 int() #思路:传进来一个字符串,返回一个对应的整数 def strToInt(s): digits = {"0":0,"1":1,"2":2,"3":3,"4":4} return digits[s] #"23401"------>23401 r0 = map(strToInt,"23401") print(list(r0)) #[2, 3, 4, 0, 1] r1 = reduce(fn,map(strToInt,"23401")) print(r1) #23401 print(type(r1)) #<class 'int'>
3.filter()
代码演示:
""" filter(function,序列) 作用:通过指定的条件过滤列表中的元素 工作原理:将传入的函数依次作用于列表中的每一个元素,根据返回的是True还是False决定元素是否需要保留 """ #需求1:将列表中的偶数筛选出来 list1 = [1,2,3,4,5,6,7,8,9] #作用:定义筛选的规则 def func(num): if num % 2 == 0: return True return False result1 = filter(func,list1) print(result1) print(list(result1)) #[2, 4, 6, 8]
4.sorted()
代码演示:
#1.普通排序 #默认为升序排序,得到了的一个新的列表 list1 = [4,5,23,3,5,7] result1 = sorted(list1) print(list1) print(result1) #r[3, 4, 5, 5, 7, 23] #2.按照绝对值进行排序 #默认为升序排序,排序的依据是所有元素的绝对值的大小 list2 = [4,5,-23,3,-5,7] result2 = sorted(list2,key=abs) print(result2) #[3, 4, 5, -5, 7, -23] #3.降序升序 list3 = [4,5,23,3,5,7] result3 = sorted(list3,reverse=True) print(result3) #4.字符也可以实现排序 list4 = ["f","a","k","z"] result4 = sorted(list4) print(result4) #5.自定义排序规则 #默认为升序排序 def myFunc(str): return len(str) list5 = ["gsg","a","34535","efgg","562875678257fhjawhgj"] result5 = sorted(list5,key=myFunc) print(result5)
二、虚拟环境【掌握】
1, virtualenv的概述
virtualenv是用来创建Python的虚拟环境的库,虚拟环境能够独立于真实环境存在,
并且可以同时有多个互相独立的Python虚拟环境,每个虚拟环境都可以营造一个干净
的开发环境,对于项目的依赖、版本的控制有着非常重要的作用。
虚拟环境有什么意义?
如果我们要同时开发多个应用程序,应用A需要Django1.11,而应用B需要Django1.8怎么办?
这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。
virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。
2, virtualenv 的安装和使用
1.安装和创建virtualenv
a,安装虚拟环境:安装virtualenv跟安装一般的Python库是一样的操作,直接使用pip命令就行了:
pip install virtualenv
b,创建虚拟环境:安装完成之后就可以使用virtualenv的命令来创建虚拟环境了,
首先需要进入需要创建虚拟环境的文件夹,比如F盘的envs文件夹,
然后使用以下命令创建一个虚拟环境,python版本的路径是可选的:
virtualenv 虚拟环境名称 [-p python版本的路径]
如:virtualenv env1
2,启动虚拟环境:
env1\Scripts\activate
进入虚拟环境后:
使用pip安装numpy模块
创建test.py文件,并在文件中使用numpy模块
在cmd命令窗口使用python test.py执行文件
3,退出虚拟环境(进入真实系统环境):
deactivate
(如果报错则使用:env1\Scripts\deactivate)
退出虚拟环境后再执行test.py:
在cmd命令窗口使用python test.py执行文件
3, virtualenvwrapper 的安装和使用
virtualenvwrapper是virtualenv的包装版,以后用这个,更加方便
Windows: pip install virtualenvwrapper-win
(Linux:pip install virtualenvwrapper)
创建:mkvirtualenv 虚拟环境名称 -p python的路径
删除:rmvirtualenv 虚拟环境名称
(注意:创建的虚拟环境放在用户目录下的Envs中)
进入:workon 虚拟环境名称
退出:deactivate
4, pip常用命令
pip install xxx:安装xxx依赖包
pip uninstall xxx :卸载xxx包
pip list:查看所有依赖包
pip freeze:查看虚拟环境新安装的包
网友评论