大家好,我是程序员G哥,都说拳不离手,曲不离口,学习编程其实就跟练武一样,每个小白成长为大侠都需要经过不断的磨练,打怪升级,不断的增长经验值。而GitHub就是一个大的宝库,里面有各种武林秘籍,让你吸取能量!
今天G哥在逛GitHub的时候,发现了一份非常不错的学习Python的资源。一共有223个小例子,每个60秒就能看完,一口一个,短小精悍,非常适合学习修炼。
作者Jack非常厉害,整理了一共有8个章节,每个章节都有大小,数量不等的小巧的例子,从Python基础知识,字符串,正则,到进阶的生成器,迭代器,难懂的装饰器,常见的文件处理,正则使用,到算法的入门,一应俱全。目前已经收获了3900颗星,我们一起来看一下。
元素都为真
接受一个可迭代对象,如果可迭代对象的所有元素都为真,那么返回 True
,否则返回False
3 元素至少一个为真
接受一个可迭代对象,如果可迭代对象里至少有一个元素为真,那么返回True
,否则返回False
ascii展示对象
调用对象的 _repr_ 方法,获得该方法的返回值,如下例子返回值为字符串
转为字典
创建数据字典
枚举对象
返回一个可以枚举的对象,该对象的next()方法将返回一个元组。
过滤器
在函数中设定过滤条件,迭代元素,保留返回值为True
的元素:
动态获取对象属性
获取对象的属性
上面的都是一些简单的招式,我们再来看一些进阶的总结的不错的招式,看完之后一定让你功力大涨!
创建属性的两种方式
返回 property 属性,典型的用法:
使用python装饰器,实现与上完全一样的效果代码:
聚合迭代器
创建一个聚合了来自每个可迭代对象中的元素的迭代器:
nonlocal用于内嵌函数中
关键词nonlocal
常用于函数嵌套中,声明变量i
为非局部变量;如果不声明,i+=1
表明i
为函数wrapper
内的局部变量,因为在i+=1
引用(reference)时,i未被声明,所以会报unreferenced variable
的错误。
不用else和if实现计算器
这种设计思路非常巧妙,在实际的生产环境中经常会用到,非常简洁,跟代码大全里面的表查询有异曲同工之妙。
全展开,如何把这样的嵌套数组展开
例如[[[1,2,3],[4,5]]],这个题目其实也是我曾经面试的一个题目
如何完全展开成一维的。这个小例子实现的flatten
是递归版,两个参数分别表示带展开的数组,输出数组。
groupby单字段分组
天气记录:
a = [{'date': '2019-12-15', 'weather': 'cloud'},
{'date': '2019-12-13', 'weather': 'sunny'},
{'date': '2019-12-14', 'weather': 'cloud'}]
按照天气字段weather
分组汇总:
输出结果:
cloud
{'date': '2019-12-15', 'weather': 'cloud'}
{'date': '2019-12-14', 'weather': 'cloud'}sunny
{'date': '2019-12-13', 'weather': 'sunny'}
itemgetter和key函数
注意到sort
和groupby
所用的key
函数,除了lambda
写法外,还有一种简写,就是使用itemgetter
:
结果:
cloud
{'date': '2019-12-15', 'weather': 'cloud'}
{'date': '2019-12-14', 'weather': 'cloud'}sunny
{'date': '2019-12-13', 'weather': 'sunny'}
统计异常出现次数和时间的装饰器
写一个装饰器,统计某个异常重复出现指定次数时,经历的时长。
xls批量转换成xlsx
上面的Python技巧真的是令人眼花缭乱,让我学习兴趣大涨!看完之后,赶紧动手撸一遍。光看是没有用的,一定要把这些招式敲一边,然后动手运行一下,调试一些,加深印象。
理解了消化了,才会吸引为自己的,功力才能大涨。也不枉小编熬夜编写,逛了好久才找到的这份宝典。
其实Python是入门容易精通难,啥也不说了,赶紧练吧!如果对你有用,留言区吱一声。
更多的短小精悍的小例子,查看链接:
https://github.com/jackzhenguo/python-small-examples
近期热门:
墙裂推荐!B站上的Python学习资源只要三步,带你用Python换脸趣味!用Python竟然还能做一个文字套娃只要三步,带你用Python换脸一行Python代码写的游戏,我能这样玩一天!让你纵横 GitHub 的五大神器
程序员GitHub
由菜鸟学Python原班人马打造的公众号【程序员GitHub】开始啦!
专注于分享GitHub上有趣的资源包括
Python,Java,Go语言
前端学习等优质的学习资源
分享程序员圈的新鲜趣事,热门干货,职场感悟
点的“在看”,否则就看不到我了555