(图片付费下载自视觉中国)
作者 | xiaoyu,数据爱好者
来源 | Python数据科学(ID:PyDataScience)
很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经有了很好的方法来解决。当然,孰能生巧,当我们代码熟练了,自然就能总结一些好用的技巧,不过对于那些还在刚熟悉Python的同学可能并不会那么轻松。
本次给大家推荐一个学习这些技巧的很好的资源“30-seconds-of-python”,所有技巧方法只要30秒就能get到,完全可以利用业务时间不断积累。下面赶紧来看一下。
https://github.com/30-seconds/30-seconds-of-python
内容目录
下面是30秒学Python的整个目录,分为几大板块:List、Math、Object、String、Utility,以下是整理的思维脑图。
我挑选了10个实用并很有意思的方法分享给大家,其余的感兴趣可以自行学习。
1. List:all_equal
功能实现:检验一个列表中的所有元素是否都一样。
解读:使用[1:] 和 [:-1] 来比较给定列表的所有元素。
def all_equal(lst):
return lst[1:] == lst[:-1]
举例:
all_equal([1, 2, 3, 4, 5, 6]) # False
all_equal([1, 1, 1, 1]) # True
2. List:all_unique
功能实现:如果列表所有值都是唯一的,返回 True,否则False
解读:在给定列表上使用集合set()去重,比较它和原列表的长度。
def all_unique(lst):
return len(lst) == len(set(lst))
举例:
x = [1,2,3,4,5,6]
y = [1,2,2,3,4,5]
all_unique(x) # True
all_unique(y) # False
3. List:bifurcate
功能实现:将列表值分组。如果在filter的元素是True,那么对应的元素属于第一个组;否则属于第二个组。
解读:使用列表推导式和enumerate()基于filter元素到各组。
def bifurcate(lst, filter):
return [
[x for i,x in enumerate(lst) if filter[i] == True],
[x for i,x in enumerate(lst) if filter[i] == False]
]
举例:
bifurcate(['beep', 'boop', 'foo', 'bar'], [True, True, False, True])
# [ ['beep', 'boop', 'bar'], ['foo'] ]
4. List:difference
功能实现:返回两个iterables间的差异。
解读:创建b的集合,使用a的列表推导式保留不在_b中的元素。
def difference(a, b):
_b = set(b)
return [item for item in a if item not in _b]
举例:
difference([1, 2, 3], [1, 2, 4]) # [3]
5. List:flatten

功能实现:一次性的整合列表。
解读:使用嵌套的列表提取子列表的每个值。
def flatten(lst):
return [x for y in lst for x in y]
举例:
flatten([[1,2,3,4],[5,6,7,8]]) # [1, 2, 3, 4, 5, 6, 7, 8]
6. Math:digitize

功能实现:将一个数分解转换为个位数字。
解读:将n字符化后使用map()函数结合int完成转化
def digitize(n):
return list(map(int, str(n)))
举例:
digitize(123) # [1, 2, 3]
7. List:shuffle
功能实现:将列表元素顺序随机打乱。
解读:使用Fisher-Yates算法重新排序列表元素。
from copy import deepcopy
from random import randint

def shuffle(lst):
temp_lst = deepcopy(lst)
m = len(temp_lst)
while (m):
m -= 1
i = randint(0, m)
temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]
return temp_lst

举例:
foo = [1,2,3]
shuffle(foo) # [2,3,1] , foo = [1,2,3]
8. Math:clamp_number
功能实现:将数字num钳在由a和b边界值规定的范围中。
解读:如果num落尽范围内,返回num;否则,返回范围内最接近的数字。
def clamp_number(num,a,b):
return max(min(num, max(a,b)),min(a,b))
举例:
clamp_number(2, 3, 5) # 3
clamp_number(1, -1, -5) # -1
9. String:
byte_size

功能实现:返回字符串的字节数。
解读:使用string.encode('utf-8')解码给定字符串,返回长度。
def byte_size(string):
return len(string.encode('utf-8'))
举例:
byte_size('?') # 4
byte_size('Hello World') # 11
10. Math:gcd
功能实现:计算几个数的最大公因数。
解读:使用reduce()和math.gcd在给定列表上实现。
from functools import reduce
import math

def gcd(numbers):
return reduce(math.gcd, numbers)

举例:
gcd([8,36,28]) # 4
以上就是30秒学python的各种小技巧。怎么样,对于一些常见操作是不是有了一些新的启发,除此之外,还有很多其它技巧可以慢慢学习,希望对各位读者有所帮助。

原文链接:

https://github.com/30-seconds/30-seconds-of-python

(*本文为 AI科技大本营转载文章,载请联系原作者

精彩推荐

早鸟票倒计时最后1天,扫码购票立减2600元
2019 中国大数据技术大会(BDTC)再度来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。

推荐阅读

  • 简单粗暴上手TensorFlow 2.0,北大学霸力作,必须人手一册

  • 分析Booking的150种机器学习模型,我总结了6条教训

  • 微软也爱Python:VS Code Python全新发布!Jupyter Notebook原生支持终于来了

  • 如何保护你的Python代码(一)——现有加密方案

  • 罗永浩向老同事道歉;三星漏洞已波及四千万用户;Clojure 1.11 即将发布 | 极客头条

  • 真·上天!NASA招聘区块链"多功能复合型"人才, 欲保护飞行数据安全……

  • 10 月全国程序员工资统计,一半以上的职位 5 个月没招到人

  • 【光说不练假把式】今天说一说Kubernetes 在有赞的实践

你点的每个“在看”,我都认真当成了喜欢

每30秒学会一个Python小技巧,GitHub星数4600+相关推荐

  1. 震惊了!每30秒学会一个Python小技巧,Github星数6000+

    点击上方"Python数据科学",星标公众号 重磅干货,第一时间送达 ☞500g+超全学习资源免费领取,干货来袭! 作者:xiaoyu,数据爱好者 Python数据科学出品 很多学 ...

  2. python打乱list_超实用!每 30 秒学会一个 Python 小技巧,GitHub 标星 5300!

    公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 很多学习 Python 的朋友在项目实战中会遇到不少功能实现上的问题,有些问 ...

  3. python unique函数_每30秒学会一个Python小技巧,GitHub星数4600+

    作者 | xiaoyu,数据爱好者来源 | Python数据科学(ID:PyDataScience)很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经 ...

  4. 震惊了!每30秒学会一个Python小技巧,Github星数4600+

    点击上方"码农突围",马上关注,每天上午8:50准时推送 真爱,请置顶或星标 作者:xiaoyu,数据爱好者 Python数据科学出品 很多学习Python的朋友在项目实战中会遇到 ...

  5. ​【Python基础】告别枯燥,60 秒学会一个 Python 小例子(文末下载)

    本文推荐一个python的傻瓜式的学习资源,内容简单易懂,让人可以在60 秒学会一个 Python 小例子 当前库已有 300多 个实用的小例子 本文来源:https://github.com/jac ...

  6. 3分钟学会python_3分钟学会一个Python小技巧

    Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串. datetime 分别提供了两个方法 strp ...

  7. 30秒就能学会一个Python小技巧?

    作者:wLsq 来源:Python数据科学 大家好,很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经有了很好的方法来解决.当然,孰能生巧,当我们代码 ...

  8. 30秒就能学会一个Python小技巧你能信

    挑选了10个实用并很有意思的方法分享给大家,其余的感兴趣可以自行学习. 1. List:all_equal功能实现:检验一个列表中的所有元素是否都一样.解读:使用[1:]和[:-1]来比较给定列表的所 ...

  9. 用python画哆啦a梦的身体_每天一个Python小技巧,用Python 画个多啦A梦,小猪佩奇,文末还有Python入门学习视频...

    见网络上有人用Python 画出来个多啦A梦,很是新奇,来来来,我们看一下他们主要用到的库. 其实主要用的库就一个 turtle 库 先说明一下turtle绘图的基础知识: 1. 画布(canvas) ...

最新文章

  1. mysql 安装 菜鸟_mysql安装
  2. PHP秒杀系统全方位设计分析--转载
  3. Qt工作笔记-三种方式解决Qt5中文编码问题
  4. java n 转换_自己写的Java N进制互相转换(2=N=16)
  5. Python基础-day01
  6. SAP License:SAP 清帐函数示例
  7. DELL H330(LSI 3008)RAID卡刷IT直通模式注意事项(避坑指南)
  8. 你必须会的微服务之Hystrix熔断器
  9. php 字符显示不出来,ps文字显示不出来怎么办?
  10. 黑客第二课:脱屌第一步(主要讲unix-like系统的初步知识)
  11. 微服务架构设计总结实践篇,10 步搭建微服务
  12. RIP、OSPF、BGP、动态路由选路协议、自治域AS
  13. linux怎么共享存储,什么是ISCSI,及Linux下怎么样通过ISCSI实现共享存储
  14. R reticulate 设置 python 环境
  15. 动态规划特训:贝茜的晨练(多状态转移)
  16. elementUI v-loading不显示问题
  17. C++多态——静态多态与动态多态
  18. arduino中 #define、const和int 的差别
  19. 关于自己制作的软件被杀毒软件误报的解决办法
  20. java大学生网上请假管理系统

热门文章

  1. whoosh学习(1)
  2. 2018-3-7论文网络评论中非结构化信息的表示与研究--------实验分析
  3. 从一个数组中寻找出现奇数次的数字
  4. 基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案...
  5. axios解决调用后端接口跨域问题
  6. Wannafly挑战赛14
  7. python学习07
  8. the user operation is waiting for building workspace to complete解决办法
  9. windows 内存泄露和资源泄漏调试
  10. mysql连接hang住问题分析