我的上级领导是一个技术狂人,他在技术上的涉猎非常广泛,而且对技术的自我要求蛮高。

他经常看我们写的代码,挂在嘴边的一句话是:你们的代码像屎一样,都是垃圾!

我们听到后只能默默承受,物理反驳。

他经常劝诫我们要阅读优秀框架的源码,不仅要弄懂框架的原理,更要学习他们写的代码,要将他们写的代码作为奋进的目标!

其实,普通程序员写的代码和大神写的代码的最大区别就是我们是用代码堆砌功能,很少注重代码品质和效率,而大神们能写出优雅精简的代码,实现一个功能我们需要几十上百行代码,而他们可能一行就解决了!并且他们的代码运行效率还比你高!

今天给大家分享一些常用的高效代码片段,希望可以给大家的代码质量带来一点点提高!

单行循环列表

mylist = [11,24,56,45,60]
print([i*3 for i in mylist]) #[33, 72, 168, 135, 180]
print([i-10 for i in mylist])
[33, 72, 168, 135, 180] #[1, 14, 46, 35, 50]

这种写法可以减少你的代码行数,而且比较清晰。

获取数据类型

mylist = [123, 'python', 34.23, False, [4,5]]
print([type(i) for i in mylist])
# [<class 'int'>, <class 'str'>, <class 'float'>, <class 'bool'>, <class 'list'>]

我们有时候需要知道数据的类型,做对应的转换或者操作。可以这样判断:

print(type(123) == int) # True

获取数字的整数值

integer = 8938485
digitz = [int(i) for i in str(integer)]
print(digitz)
# [8, 9, 3, 8, 4, 8, 5]

这里的原理就是先将数字转换为字符串,然后再进行循环获取。

链式比较

a =5
print(1 == a < 2) # False
print(2 < 4 < 5 == a)  # True

看到第一个,是不是会这样理解:1 == a 为 False,False < 2 为 False,所以最后答案为 False。

答案是对的,但是过程是错的。在 Python 中,比较逻辑是这样的:分别比较 1 == a 和 a < 2,两个都为 True,结果才为 True。

按照这个逻辑,自己领会一下第二个的运行逻辑。

字符串乘法器

如果需要重复生成字符串,通常我们会这样:

str = ''
for i in range(10):str += 'Python'
print(str)
# PythonPythonPythonPythonPythonPythonPythonPythonPythonPython

其实,优雅的方式只需一行:

print('Python'*10)
# PythonPythonPythonPythonPythonPythonPythonPythonPythonPython

带分隔符打印

print('123', '234', 100, sep='x')
# 123x234x100

还有另外一种方式:

print('x'.join(['123', '234', '100']))
# # 123x234x100

变量交换

d1 = 34
d2 = 23
d1, d2 = d2, d1
print(d1, d2)
# 23 34

字符串变小写

mylist = ['ABCD', 'Python', 'I am Chinese']
print([data.lower() for data in mylist])
# ['abcd', 'python', 'i am chinese']

统计列表中元素出现频率

import collections
mylist = [10, 11, 12, 3, 3, 11, 11, 33]
print(dict(collections.Counter(mylist)))
# {10: 1, 11: 3, 12: 1, 3: 2, 33: 1}

更新字典

mydict = {1: 'Python', 2: 'Javascript', 3: 'Java', 4: 'C#'}
mydict.update({2: 'C'})
print(mydict)
# {1: 'Python', 2: 'C', 3: 'Java', 4: 'C#'}
mydict.update({5: 'Svelte'})
print(mydict)
# {1: 'Python', 2: 'C', 3: 'Java', 4: 'C#', 5: 'Svelte'}

非 Pandas 方式读取 csv 文件

import csv
with open('Test.csv', 'r') as f:read = csv.reader(f)print([r for r in read])

总结

好了,这些代码片段需要好好消化,方能事半功倍!大家还有没有其他的简洁高效代码片段,留言区发出来!

省时省力!这些Python高效代码片段必须牢记相关推荐

  1. python语言代码片段-有用的Python代码片段

    我列出的这些有用的Python代码片段,为我节省了大量的时间,并且我希望他们也能为你节省一些时间.大多数的这些片段出自寻找解决方案,查找博客和StackOverflow解决类似问题的答案.下面所有的代 ...

  2. Python 开发代码片段笔记

    作者编写的一些代码片段,本版本为残废删减版,没有加入多线程,也没有实现任何有价值的功能,只是一个临时记事本,记录下本人编写代码的一些思路,有价值的完整版就不发出来了,自己组织吧,代码没啥技术含量,毕竟 ...

  3. Python 常用代码片段

    [代码] [Python]代码 01    1.生成随机数 02              import random    #这个是注释,引入模块 03              rnd = ran ...

  4. python功能代码_整理几个常用的Python功能代码片段【收藏】

    随机数生成 >>> import random  #导入Python内置的随机模块 >>> num = random.randint(1,1000)  #生成1-1 ...

  5. 11个实用又简洁的Python短代码,建议收藏

    目录 前言 1.单行循环列表 2.获取数据类型 3.获取数字的整数值 4.链式比较 5.字符串乘法器 6.带分隔符打印 7.变量交换 8.字符串变小写 9.统计列表中元素出现频率 10.更新字典 11 ...

  6. 分享9个最棒的代码片段资源网站

    作为一个奋斗在第一线的码农来说,能找到自己能在项目中直接使用的代码无疑是一件天大的喜事.代码片段和代码库到处都有,如何找到自己需要的东西绝对是一个大问题,为了帮助大家更好的找到自己需要的代码,今天我们 ...

  7. 20个非常有用的Python单行代码

    有用的 Python 单行代码片段,只需一行代码即可解决特定编码问题! 在本文中,将分享20 个 Python 一行代码,你可以在 30 秒或更短的时间内轻松学习它们.这种单行代码将节省你的时间,并使 ...

  8. 运行Python代码片段

    Python自带了一个在终端窗口中运行的解释器,让你无需保存并运行整个程序就能尝试运行Python代码片段. 本文将以如下方式列出代码片段: >>>print("Hello ...

  9. 初学者怎样看懂python代码_新手入门必看,最常用的Python代码片段

    对于编程开发人员来讲,Python语法一开始可能看起来很奇怪.如果我们看到Python使用其他编程语言(例如Java)完成常见的工作,那会不会很意思?我们常见的代码片段称为"代码惯用法&qu ...

最新文章

  1. 11gR2游标共享新特性带来的一些问题以及_cursor_features_enabled、_cursor_obsolete_threshold和106001 event...
  2. linux tomcat 隐藏版本号
  3. java服务器面试_如何面试筛选出动手能力强的Java服务端程序员
  4. 数据结构与算法-链表
  5. 分布式消息中间件 : Rocketmq
  6. 技术人专访:GrapeCity,技术老炮开启低代码新征程
  7. javascript错误处理与调试(转)
  8. 跨浏览器测试工具推荐
  9. [转]查看linux服务器硬盘IO读写负载
  10. 点击按钮跳转页面_获取快手主页跳转url scheme 协议的方法(app通用方法)
  11. CUDA C 编程/Nsight可视化
  12. MSSQL2000+ASP.NET+BBSMAX论坛搭建
  13. 硬件3--电压跟随器的作用
  14. 爬取包图网教师节海报
  15. 阿里云DNS 新增云上线路的智能解析功能
  16. FreeDOM —— 一个可迁移的网页信息抽取模型
  17. TX2/Linux下can总线的接收与发送详解!(回环测试)
  18. 主板和机箱螺丝孔对不上?
  19. LaTeX Error: File `numcompress.sty‘ not found. 解决方案
  20. 人脸识别选这几家就对了!

热门文章

  1. 我们在设计类时应该注意的问题
  2. Spark实现SVM模型
  3. iPad新5.0笔刷真的巨好用,技术不够笔刷来凑
  4. 计算机通信专业 本科,通信工程专业(本科)
  5. vostro3070装win7_戴尔3070MT装win7系统详细教程(包括BIOS设置USB驱动)
  6. 游戏手柄HID描述符
  7. android 播放网络电视,HDP直播tv版 V2.0.5 for android (网络电视)
  8. PDF文件怎么复制页面,复制页面工具使用方法
  9. 介绍PWM、PPM、S-BUS这三者的区别
  10. 中国电信引进黑莓手机