作者 | xiaoyu,数据爱好者来源 | Python数据科学(ID:PyDataScience)很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经有了很好的方法来解决。当然,孰能生巧,当我们代码熟练了,自然就能总结一些好用的技巧,不过对于那些还在刚熟悉Python的同学可能并不会那么轻松。本次给大家推荐一个学习这些技巧的很好的资源“30-seconds-of-python”,所有技巧方法只要30秒就能get到,完全可以利用业务时间不断积累。下面赶紧来看一下。

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

1.内容目录下面是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]) # Falseall_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) # Trueall_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 deepcopyfrom random import randintdef 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) # 3clamp_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('?') # 4byte_size('Hello World') # 11

10. Math:gcd功能实现:计算几个数的最大公因数。解读:使用reduce()和math.gcd在给定列表上实现。

from functools import reduceimport mathdef gcd(numbers):return reduce(math.gcd, numbers)

举例:

gcd([8,36,28]) # 4

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

原文:

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

(*本文为Python大本营转载文章,转载请联系原作者)

精彩推荐

#2019 中国大数据技术大会(BDTC)#微众银行首席人工智能官,香港科技大学讲席教授杨强确认出席BDTC 2019并担任大会主席。大会还将邀请更多业内顶尖大数据应用领航者,与1500+观众分享最佳案例实践。详情https://t.csdnimg.cn/f9VS推荐阅读

  • 对比C++和Python,谈谈指针与引用

  • Pandas中第二好用的函数 | 优雅的Apply

  • 限时早鸟票 | 2019 中国大数据技术大会(BDTC)超豪华盛宴抢先看!

  • Python老司机给上路新手的3点忠告

  • 即学即用的30段Python实用代码

  • 使用Python对大脑成像数据进行可视化分析

  • 5大必知的图算法,附Python代码实现

  • 吐血整理!140种Python标准库、第三方库和外部工具都有了

  • 如何用爬虫技术帮助孩子秒到心仪的幼儿园(基础篇)

  • Python传奇:30年崛起之路

  • 2019年最新华为、BAT、美团、头条、滴滴面试题目及答案汇总

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

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

  1. 每30秒学会一个Python小技巧,GitHub星数4600+

    (图片付费下载自视觉中国) 作者 | xiaoyu,数据爱好者 来源 | Python数据科学(ID:PyDataScience) 很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有 ...

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

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

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

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

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

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

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

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

  6. python unique函数_《Python编程从入门到实践》json数据可视化练习详解

    <Python编程从入门到实践>16.2中,计算收盘价均值的程序有些不易看懂,结合我自己的理解进行一些说明. 使用的数据集:join格式的数据, 数据集是由多个字典为元素组成的列表.每个字 ...

  7. python symbols函数_有限元平面四边形等差单元python编程

    Part I : 平面四边形等差单元理论部分: 平面四边形等差单元 是由矩形单元 作等参变换(坐标映射)而来. 四边形等参单元的刚度矩阵是二重积分式,我想用Maple求解析解,算了很久也没有算出结果. ...

  8. python乘积函数_龙贝格求积公式(Python实现)

    #Author:glm233 #这个程序就是一个黑箱接口,把要进行龙贝格求积的函数放在func函数里,可以自行修改,然后范围就是在Romberg里改 import math '''给定一个函数,如:f ...

  9. MySQl求奇数和函数_收集的48个Shell脚本小技巧

    0. shell 调试 复制代码 代码如下: sh -x somefile.sh 在somefile.sh 文件里加上set+x set-x 1. 用 && || 简化if else ...

最新文章

  1. windows下的cmd命令(全面)
  2. 类加载的双亲委派机制
  3. html app从上向下弹框,移动端从底部向上过渡弹出弹框
  4. 图像学习-验证码识别
  5. MySQL日期时间函数总结
  6. 【资料】avr单片机和stm32区别,avr单片机选型技巧
  7. mysql自制食物_近2千条日常食物营养表ACCESS数据库Mysql数据库
  8. 用代码实现windows10下的虚拟桌面创建功能
  9. W806-ADC-PWM-TIM尝鲜
  10. 一招解决谷歌浏览器打不开wiki问题
  11. python多线程,线程锁
  12. 【ceph相关】ceph常见问题处理
  13. maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面
  14. pythonurllib登录微博什么意思_登录微博详解-爬虫的第一站
  15. 看清原理 探究彻底清除木马的方法
  16. 基于C++的使用滑块控制左右声道音量大小
  17. 修改gradle版本android,Android Studio 修改Gradle版本
  18. linux完全卸载python
  19. Day 24 Your English Enemy Is
  20. Python-《原神》荒海雷立方机关破解一

热门文章

  1. Android之WindowManager+OpenGL+EGL绘制(十七)
  2. Mac终端文件类型显示不同颜色
  3. C++函数与java函数菜鸟级的对比理解
  4. 人脸方向学习(九):Face Detection-MTCNN解读
  5. VALSE学习(十七):VALSE 2019报告总结
  6. 装机经验-某些服务器安装系统困难,需要BIOS设置
  7. excel 两组数据交点_让科研人相见恨晚的技巧,用Excel做柱状图、箱型图及数据分析!(转载自ZSCI)...
  8. 163邮箱苹果设置不成功_苹果变安卓不是不可能,Corellium让iPhone成功安装安卓系统...
  9. 拼团功能实现 php_PHP实现微信退款功能
  10. 2020年最好用的手机是哪一款_2020年旗舰手机盘点,这七款优点明显,你最喜欢哪一款?...