文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
map()
函数的常见调用形式如下所示:
map(func, iterable)
map()
需要两个必填参数,第一个参数是一个函数名,第二个参数是一个可迭代的对象,如列表、元组等。
map()
实现的功能很简单,就是将第二个参数(iterable)中的每一个元素分别传给第一个参数(func),依次执行函数得到结果,并将结果组成一个新的list
对象后进行返回。返回结果永远都是一个list
。
简单示例如下:
double_func = lambda s : s * 2
map(double_func, [1,2,3,4,5])
[2, 4, 6, 8, 10]
除了传入一个可迭代对象这种常见的模式外,map()
还支持传入多个可迭代对象。
map(func, iterable1, iterable2)
在传入多个可迭代对象的情况下,map()
会依次从所有可迭代对象中依次取一个元素,组成一个元组列表,然后将元组依次传给 func;若可迭代对象的长度不一致,则会以 None 进行补上。
通过以下示例应该就比较容易理解。
plus = lambda x,y : (x or 0) + (y or 0)
map(plus, [1,2,3], [4,5,6])
[5, 7, 9]
map(plus, [1,2,3,4], [4,5,6])
[5, 7, 9, 4]
map(plus, [1,2,3], [4,5,6,7])
[5, 7, 9, 7]
在上面的例子中,之所以采用x or 0
的形式,是为了防止None + int
出现异常。
需要注意的是,可迭代对象的个数应该与 func 的参数个数一致,否则就会出现异常,因为传参个数与函数参数个数不一致了,这个应该比较好理解。
plus = lambda x,y : x + y
map(plus, [1,2,3])
Traceback (most recent call last):
File “”, line 1, in
TypeError: () takes exactly 2 arguments (1 given)
另外,map()
还存在一种特殊情况,就是 func 为 None。这个时候,map()
仍然是从所有可迭代对象中依次取一个元素,组成一个元组列表,然后将这个元组列表作为结果进行返回。
map(None, [1,2,3,4])
[1, 2, 3, 4]
map(None, [1,2,3,4], [5,6,7,8])
[(1, 5), (2, 6), (3, 7), (4, 8)]
map(None, [1,2,3,4], [5,6,7])
[(1, 5), (2, 6), (3, 7), (4, None)]
map(None, [1,2,3,4], [6,7,8,9], [11,12])
[(1, 6, 11), (2, 7, 12), (3, 8, None), (4, 9, None)]
reduce()
reduce()
函数的调用形式如下所示:
reduce(func, iterable[, initializer])
reduce()
函数的功能是对可迭代对象(iterable)中的元素从左到右进行累计运算,最终得到一个数值。第三个参数 initializer 是初始数值,可以空置,空置为 None 时就从可迭代对象(iterable)的第二个元素开始,并将第一个元素作为之前的结果。
文字描述可能不大清楚,看下reduce()
的源码应该就比较清晰了。
def reduce(function, iterable, initializer=None):
it = iter(iterable)
if initializer is None:
try:
initializer = next(it)
except StopIteration:
raise TypeError(‘reduce() of empty sequence with no initial value’)
accum_value = initializer
for x in it:
accum_value = function(accum_value, x)
return accum_value
再加上如下示例,对reduce()
的功能应该就能掌握了。
plus = lambda x, y : x + y
reduce(plus, [1,2,3,4,5])
15
reduce(plus, [1,2,3,4,5], 10)
25
filter()
filter()
函数的调用形式如下:
filter(func, iterable)
filter()
有且仅有两个参数,第一个参数是一个函数名,第二个参数是一个可迭代的对象,如列表、元组等。
filter()
函数的调用形式与map()
比较相近,都是将第二个参数(iterable)中的每一个元素分别传给第一个参数(func),依次执行函数得到结果;差异在于,filter()
会判断每次执行结果的bool
值,并只将bool
值为true
的筛选出来,组成一个新的列表并进行返回。
mode2 = lambda x : x % 2
filter(mode2, [1,2,3,4,5,6,7,8,9,10])
[1, 3, 5, 7, 9]
zip()
zip()
函数的调用形式如下:
zip([iterable, …])
zip()
函数接收一个或多个可迭代对象,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
zip([1, 2, 3], [“a”, “b”, “c”])
[(1, ‘a’), (2, ‘b’), (3, ‘c’)]
dict(zip([1, 2, 3], [“a”, “b”, “c”]))
{1: ‘a’, 2: ‘b’, 3: ‘c’}
dict(zip([1, 2, 3], [“a”, “b”]))
{1: ‘a’, 2: ‘b’}
打包元组个数与最短列表个数一致。
enumerate()
enumerate()
函数的调用形式如下:
enumerate(iterable, [start=0])
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
enumerate([‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’])
<enumerate object at 0x1031780>
list(enumerate([‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]))
[(0, ‘Spring’), (1, ‘Summer’), (2, ‘Fall’), (3, ‘Winter’)]
all()、any()
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!