『加米谷大数据』Github星数4600+,每30秒学会一个Python小技巧
很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题 , 有些问题并不是很难的问题 , 或者已经有了很好的方法来解决 。 当然 , 孰能生巧 , 当我们代码熟练了 , 自然就能总结一些好用的技巧 , 不过对于那些还在刚熟悉Python的同学可能并不会那么轻松 。 作者:xiaoyu , 数据爱好者;Python数据科学出品

文章图片
本次给大家推荐一个学习这些技巧的很好的资源“30-seconds-of-python” , 所有技巧方法只要30秒就能get到 , 完全可以利用业务时间不断积累 。 下面赶紧来看一下 。
https://github.com/30-seconds...
内容目录下面是30秒学Python的整个目录 , 分为几大板块:List、Math、Object、String、Utility , 以下是整理的思维脑图 。

文章图片
【『加米谷大数据』Github星数4600+,每30秒学会一个Python小技巧】我挑选了10个实用并很有意思的方法分享给大家 , 其余的感兴趣可以自行学习 。
1.List:all_equal功能实现:检验一个列表中的所有元素是否都一样 。 解读:使用[1:]和[:-1]来比较给定列表的所有元素 。
defall_equal(lst):returnlst[1:]==lst[:-1]举例:
all_equal([1,2,3,4,5,6])#Falseall_equal([1,1,1,1])#True2.List:all_unique功能实现:如果列表所有值都是唯一的 , 返回True , 否则False解读:在给定列表上使用集合set()去重 , 比较它和原列表的长度 。
defall_unique(lst):returnlen(lst)==len(set(lst))举例:
x=[1,2,3,4,5,6]y=[1,2,2,3,4,5]all_unique(x)#Trueall_unique(y)#False3.List:bifurcate功能实现:将列表值分组 。 如果在filter的元素是True , 那么对应的元素属于第一个组;否则属于第二个组 。 解读:使用列表推导式和enumerate()基于filter元素到各组 。
defbifurcate(lst,filter):return[[xfori,xinenumerate(lst)iffilter[i]==True],[xfori,xinenumerate(lst)iffilter[i]==False]]举例:
bifurcate(['beep','boop','foo','bar'],[True,True,False,True])#[['beep','boop','bar'],['foo']]4.List:difference功能实现:返回两个iterables间的差异 。 解读:创建b的集合 , 使用a的列表推导式保留不在_b中的元素 。
defdifference(a,b):_b=set(b)return[itemforiteminaifitemnotin_b]举例:
difference([1,2,3],[1,2,4])#[3]5.List:flatten功能实现:一次性的整合列表 。 解读:使用嵌套的列表提取子列表的每个值 。
defflatten(lst):return[xforyinlstforxiny]举例:
flatten([[1,2,3,4],[5,6,7,8]])#[1,2,3,4,5,6,7,8]6.Math:digitize功能实现:将一个数分解转换为个位数字 。 解读:将n字符化后使用map()函数结合int完成转化
defdigitize(n):returnlist(map(int,str(n)))举例:
digitize(123)#[1,2,3]7.List:shuffle功能实现:将列表元素顺序随机打乱 。 解读:使用Fisher-Yates算法重新排序列表元素 。
fromcopyimportdeepcopyfromrandomimportrandintdefshuffle(lst):temp_lst=deepcopy(lst)m=len(temp_lst)while(m):m-=1i=randint(0,m)temp_lst[m],temp_lst[i]=temp_lst[i],temp_lst[m]returntemp_lst举例:
foo=[1,2,3]shuffle(foo)#[2,3,1],foo=[1,2,3]8.Math:clamp_number功能实现:将数字num钳在由a和b边界值规定的范围中 。 解读:如果num落尽范围内 , 返回num;否则 , 返回范围内最接近的数字 。
defclamp_number(num,a,b):returnmax(min(num,max(a,b)),min(a,b))举例:
clamp_number(2,3,5)#3clamp_number(1,-1,-5)#-19.String:byte_size功能实现:返回字符串的字节数 。 解读:使用string.encode('utf-8')解码给定字符串 , 返回长度 。
推荐阅读
- 兰州新闻网美国疫情数据为何矛盾混乱
- ZAKER| 不必在意巴菲特看空航空业,数据解析
- 证券数据宝重磅!华为成立“5G汽车生态圈”,对标特斯拉实现终极无人驾驶
- 『Java』java数据结构系列——什么是数据结构
- 兄弟篮球前AMVP却并非合格领袖,同曦男篮需做出改变,数据足够出彩
- 靓科技解读Thing,a16z、5.15亿美金的数据加密股票基金:找寻下一个Big
- 长沙城事吃吃吃、买买买成主流,五一消费数据出炉
- 大数据邦新基建之大数据中心规划设计原则和内容,选址很关键
- 大数据邦选址很关键,新基建之大数据中心规划设计原则和内容
- 小熊带你玩科技数据成粤企生产新要素,工业互联网深调研〡从经验依赖到数据驱动
