python groupby用法_GitHub标星3.9K!223个Python小例子,一次让你吃个够!

48160a0696d6498db8fdf11e09690780.png

大家好,我是程序员G哥,都说拳不离手,曲不离口,学习编程其实就跟练武一样,每个小白成长为大侠都需要经过不断的磨练,打怪升级,不断的增长经验值。而GitHub就是一个大的宝库,里面有各种武林秘籍,让你吸取能量!

今天G哥在逛GitHub的时候,发现了一份非常不错的学习Python的资源一共有223个小例子,每个60秒就能看完,一口一个,短小精悍,非常适合学习修炼。

2a535f133cbc18995af91c5767a06a29.png

作者Jack非常厉害,整理了一共有8个章节,每个章节都有大小,数量不等的小巧的例子,从Python基础知识,字符串,正则,到进阶的生成器,迭代器,难懂的装饰器,常见的文件处理,正则使用,到算法的入门,一应俱全。目前已经收获了3900颗星,我们一起来看一下。

元素都为真

接受一个可迭代对象,如果可迭代对象的所有元素都为真,那么返回 True,否则返回False

876e32e079671361444fbd87aaf57011.png

3 元素至少一个为真 

接受一个可迭代对象,如果可迭代对象里至少有一个元素为真,那么返回True,否则返回False

af9d6f15e59fc6f12b89071814c3e264.png

ascii展示对象

调用对象的 _repr_ 方法,获得该方法的返回值,如下例子返回值为字符串

311f68e76608dfb38c143c50daf6ad28.png

转为字典 

创建数据字典

d299e0aa2480025ecaece2b89632b7d4.png

枚举对象

返回一个可以枚举的对象,该对象的next()方法将返回一个元组。

f40717e4ffd9695d5996a3aeb8820445.png

过滤器

在函数中设定过滤条件,迭代元素,保留返回值为True的元素:

efd6c3847d6d44a661e3c2a188ddee42.png

动态获取对象属性

获取对象的属性

21029f7f78a30191d3534f20a2580a7a.png

上面的都是一些简单的招式,我们再来看一些进阶的总结的不错的招式,看完之后一定让你功力大涨!

创建属性的两种方式

返回 property 属性,典型的用法:

d09975c10cc5e18b6fe6cd9ce3b1f8f4.png

使用python装饰器,实现与上完全一样的效果代码:

730c581d1943f9ad6c2fd0a19c464835.png

聚合迭代器

创建一个聚合了来自每个可迭代对象中的元素的迭代器:

2933f29b168ca1cb95780fb5d2249bfd.png

nonlocal用于内嵌函数中

关键词nonlocal常用于函数嵌套中,声明变量i为非局部变量;如果不声明,i+=1表明i为函数wrapper内的局部变量,因为在i+=1引用(reference)时,i未被声明,所以会报unreferenced variable的错误。

910e1c9aff2bf9252d57e7f758b71b68.png

不用else和if实现计算器

e30a552e69c9172d5fba38d83eb7cec8.png

这种设计思路非常巧妙,在实际的生产环境中经常会用到,非常简洁,跟代码大全里面的表查询有异曲同工之妙。

全展开,如何把这样的嵌套数组展开
例如[[[1,2,3],[4,5]]],这个题目其实也是我曾经面试的一个题目

如何完全展开成一维的。这个小例子实现的flatten是递归版,两个参数分别表示带展开的数组,输出数组。

cc78627d78a5f7c95b157b8e41d381ff.png

groupby单字段分组

天气记录:

a = [{'date': '2019-12-15', 'weather': 'cloud'},
{'date': '2019-12-13', 'weather': 'sunny'},
{'date': '2019-12-14', 'weather': 'cloud'}]

按照天气字段weather分组汇总:

df1af3debc0934eaa5fb5fc398854956.png

输出结果:

cloud
{'date': '2019-12-15', 'weather': 'cloud'}
{'date': '2019-12-14', 'weather': 'cloud'}sunny
{'date': '2019-12-13', 'weather': 'sunny'}
itemgetter和key函数

注意到sortgroupby所用的key函数,除了lambda写法外,还有一种简写,就是使用itemgetter

a9d669abf454e79af02004384166fec7.png

结果:

cloud
{'date': '2019-12-15', 'weather': 'cloud'}
{'date': '2019-12-14', 'weather': 'cloud'}sunny
{'date': '2019-12-13', 'weather': 'sunny'}
统计异常出现次数和时间的装饰器

写一个装饰器,统计某个异常重复出现指定次数时,经历的时长。

2cfc4040eb790111296aacfea09c63f1.png

 xls批量转换成xlsx

c0e6f0a35917d4639198431561c55e58.png

上面的Python技巧真的是令人眼花缭乱,让我学习兴趣大涨!看完之后,赶紧动手撸一遍。光看是没有用的,一定要把这些招式敲一边,然后动手运行一下,调试一些,加深印象。

理解了消化了,才会吸引为自己的,功力才能大涨。也不枉小编熬夜编写,逛了好久才找到的这份宝典。

其实Python是入门容易精通难,啥也不说了,赶紧练吧!如果对你有用,留言区吱一声。


更多的短小精悍的小例子,查看链接:

https://github.com/jackzhenguo/python-small-examples

近期热门:

墙裂推荐!B站上的Python学习资源只要三步,带你用Python换脸趣味!用Python竟然还能做一个文字套娃只要三步,带你用Python换脸一行Python代码写的游戏,我能这样玩一天!让你纵横 GitHub 的五大神器 程序员GitHub 由菜鸟学Python原班人马打造的公众号【程序员GitHub】开始啦!

60cce155a5ba4ace510912a7c723ac59.png

专注于分享GitHub上有趣的资源包括

Python,Java,Go语言

前端学习等优质的学习资源

分享程序员圈的新鲜趣事,热门干货,职场感悟

点的“在看”,否则就看不到我了555
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值