map()
将一个函数应用于可迭代对象的每个元素,并返回结果列表。filter()
使用指定的函数过滤可迭代对象的元素,并返回满足条件的元素组成的迭代器。enumerate()
返回一个由索引和元素组成的元组的迭代器,常用于同时遍历索引和元素。zip()
将多个可迭代对象的对应元素打包成元组的迭代器。itertools.zip_longest()
与zip()
类似,但在处理不等长的可迭代对象时,会使用填充值填充缺失的元素。itertools.tee()
复制可迭代对象的内容,生成两个相互独立的迭代器。itertools.groupby()
用于对可迭代对象进行分组。它会返回一个由分组键和对应的迭代器组成的迭代器。
map()
scss
复制代码
li = [1, 2, 3]
# mapped_li 是一个 map object(Iterable) 而不是list
mapped_li = map(lambda x: str(x), li)
# 若要变为list,则需要转换
mapped_list_li = list(mapped_li) # ['1', '2', '3']
# map操作可用生成器表达式代替,更清晰
mapped_li = [str(x) for x in li] # ['1', '2', '3']
filter()
ini
复制代码
li = [1, 2, 3]
# filtered_li 是一个 filter object(Iterable) 而不是list
filtered_li = filter(lambda x: x == 1, li)
# 若要变为list,则需要转换
filtered_list_li = list(filtered_li) # [1]
# filter操作可用生成器表达式代替,更清晰
filtered_li = [x for x in li if x == 1] # [1]
enumerate()
css
复制代码
li = [5, 2, 0]
for i, x in enumerate(li):
print(i, x)
# 0 5
# 1 2
# 2 0
enumerate([5, 2, 0])
可以理解为 ((0, 5), (1, 2), (2, 0))
,即 ((index, value), ...)
不过实际上这并不是一个元组,而是一个 enumerate object
。
zip()
ini
复制代码
li1 = [1, 2, 3]
li2 = [4, 5, 6]
li3 = [7, 8, 9]
zipped_li = zip(li1, li2, li3) # 同理,并不是list,而是zip object
zipped_list_li = list(zipped_li) # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
for x, y, z in zip(li1, li2, li3):
...
# 举例
students = ['小左', '小瑞', '小海']
schools = ['清华', '北大', '复旦']
homes = ['小左家', '小瑞家', '小海家']
for stu, school, home in zip(students, schools, homes):
print(f'{stu}是{school}的学生,他在{home}')
# 小左是清华的学生,他在小左家
# 小瑞是北大的学生,他在小瑞家
# 小海是复旦的学生,他在小海家
itertools.zip_longest()
ini
复制代码
from itertools import zip_longest
li1 = [1, 2, 3]
li2 = [5, 6]
li3 = [9]
# 同理,并不是list,而是zip_longest object
zipped_li = zip_longest(li1, li2, li3, fillvalue=0)
zipped_list_li = list(zipped_li) # [(1, 5, 9), (2, 6, 0), (3, 0, 0)]
itertools.tee()
ini
复制代码
from itertools import tee
li = [1, 2, 3]
li1, li2 = tee(li)
list_li1 = list(li1) # [1, 2, 3]
list_li2 = list(li2) # [1, 2, 3]
itertools.groupby()
less
复制代码
from itertools import groupby
data = [('A', 1), ('A', 2), ('B', 3), ('B', 4), ('B', 5)]
for key, group in groupby(data, key=lambda x: x[0]):
print(key, list(group))
# A [('A', 1), ('A', 2)]
# B [('B', 3), ('B', 4), ('B', 5)]
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
优快云大礼包:全网最全《全套Python学习资料》免费分享🎁
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓