先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
输出:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
但其实通过列表生成式,我们有一种更快捷的方法,只需要一行代码就能够实现相同的功能。
squares = [i ** 2 for i in range(10)]
print(squares)
输出:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3. 通过 Python 内置的 sorted()
方法对复杂的对象进行排序
排序的需求在很多场景中都很常见,Python中的可迭代对象(列表、元组、字典)都可以进行排序,内置函数 sorted()
让我们甚至都不需要自己实现排序算法。
data = [1, 3, -5, 7, 9, -11]
sortedData = sorted(data)
print(sortedData)
输出:
[-11, -5, 1, 3, 7, 9]
sorted()
方法自动将列表按照升序排序,如果你想按照降序排序,可以使用 sorted()
的参数 reverse = True
。
sorted()
方法同样也适用于元组类型的数据,但是注意排序的结果将返回一个列表。
data = (1, 3, -5, 7, 9, -11)
print(data)
sortedData = sorted(data)
print(sortedData)
输出:
(1, 3, -5, 7, 9, -11)
[-11, -5, 1, 3, 7, 9]
对于复杂的可迭代对象,比如我们可以创建一个列表,列表中的每一个元素都是一个人的字典信息,然后我们按照每个人的年龄进行排序。
我们可以用 sorted()
的 key
参数,传入一个匿名函数,让排序按照我们预想的方式进行。
data = [{
“name”: “Alex”, “age”: 18},
{
“name”: “Band”, “age”: 21},
{
“name”: “Coco”, “age”: 17}]
sorted_data = sorted(data, key=lambda x: x[“age”])
print(sorted_data)
输出:
[{‘name’: ‘Coco’, ‘age’: 17}, {‘name’: ‘Alex’, ‘age’: 18}, {‘name’: ‘Band’, ‘age’: 21}]
4. 使用集合 Set
存储唯一值
如果你有一个包含多个值的列表,并且需要去重,一个不错的技巧是将我们的列表转换为一个集合。
Python的集合是一种无序的数据类型,并且没有重复元素,还提供了不同集合之间的运算,可以求交集、并集和差集。
data = [1, 3, 3, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9]
setData = set(data)
print(setData)
输出:
{1, 3, 5, 7, 9}
5. 使用生成器以节省内存
有时候列表并不是最好的选择。假如我们有一个非常大的列表,有10000个元素,我们想计算所有元素的总和,虽然可以用列表来做,当如果数据量特别大的话我们可能会遇到内存问题,更好的解决方案是使用生成器。
dataList = [i for i in range(10000)]
print(sum(dataList))
dataGen = (i for i in range(10000))
print(sum(dataGen))
输出:
列表生成式与生成器具有相同的语法,不同点在于列表生成式使用的是中括号,而生成器使用的是小括号。
生成器通过类似于懒加载的方式计算我们需要的元素,因此它一次只生成一个元素,并且只在需要的时候才生成。
我们可以使用 sys
的 getsize()
方法看一下列表和生成器的大小。
import sys
dataList = [i for i in range(10000)]
print(sys.getsizeof(dataList), “bytes”)
dataGen = (i for i in range(10000))
print(sys.getsizeof(dataGen), “bytes”)
输出:
85176 bytes
112 bytes
6. 在字典中获取元素使用 .get()
并且设置默认值
假设我们有一个字典,其中包括不同的键,比如商品和价格,在我们的代码中的某个点,想要获得商品的价格。
当我们用 []
简单的访问键时,如果键不在字典中,那么代码将会报错,引发一个 KeyError
。
dataDict = {
“name”: “Tesla”,
“price”: 250000
}
print(dataDict[“count”])
报错:
Traceback (most recent call last):
File “mian.py”, line 5, in
print(dataDict[“count”])
KeyError: ‘count’
更好的方式是使用 .get()
方法,此时如果键不存在,则不会引发 KeyError
,而是返回一个默认值,如果我们不指定默认值,它会直接返回None,如果我们指定默认值,那么它会返回我们指定的默认值。
dataDict = {
“name”: “Tesla”,
“price”: 250000
}
print(dataDict.get(“count”))
print(dataDict.get(“count”, 0))
输出:
None
0
7. 计数器 collections.Counter
如果你想计算列表中元素的数量,Python中有一个非常方便的工具。
from collections import Counter
data = [1, 3, 3, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9]
counter = Counter(data)
print(counter)
输出:
Counter({9: 5, 7: 4, 5: 3, 3: 2, 1: 1})
Counter
可以统计列表中不同元素的数量,并且按照出现次数降序排列,这比我们自己计算要好得多。
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
关注,礼尚往来总是要有的:**
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-Gi2uP1Rw-1713616625643)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!