网站首页 > 基础教程 正文
前言:
代码太多,小编就以图片方式展现出来,方便大家观看以及收藏!
ython 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不上多高级,但掌握这些至少可以让你的代码看起来 Pythonic 一点。如果你还在按照类C语言的那套风格来写的话,在 code review 恐怕会要被吐槽了。
列表推导式
1.>>> chars = [ c for c in 'python' ] 2.>>> chars 3.['p', 'y', 't', 'h', 'o', 'n']
字典推导式
1.>>> dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} 2.>>> double_dict1 = {k:v*2 for (k,v) in dict1.items()} 3.>>> double_dict1 4.{'a': 2, 'b': 4, 'c': 6, 'd': 8, 'e': 10}
集合推导式
1.>>> set1 = {1,2,3,4} 2.>>> double_set = {i*2 for i in set1} 3.>>> double_set 4.{8, 2, 4, 6}
合并字典
1.>>> x = {'a':1,'b':2} 2.>>> y = {'c':3, 'd':4} 3.>>> z = {**x, **y} 4.>>> z 5.{'a': 1, 'b': 2, 'c': 3, 'd': 4}
复制列表
1.>>> nums = [1,2,3] 2.>>> nums[::] 3.[1, 2, 3] 4.>>> copy_nums = nums[::] 5.>>> copy_nums 6.[1, 2, 3]
反转列表
1.>>> reverse_nums = nums[::-1] 2.>>> reverse_nums 3.[3, 2, 1] 4.PACKING / UNPACKING
变量交换
1.>>> a,b = 1, 2 2.>>> a ,b = b,a 3.>>> a 4.2 5.>>> b 6.1
高级拆包
1.>>> a, *b = 1,2,3 2.>>> a 3.1 4.>>> b 5.[2, 3]
或者
1.>>> a, *b, c = 1,2,3,4,5 2.>>> a 3.1 4.>>> b 5.[2, 3, 4] 6.>>> c 7.5
函数返回多个值(其实是自动packing成元组)然后unpacking赋值给4个变量
1.>>> def f(): 2.... return 1, 2, 3, 4 3.... 4.>>> a, b, c, d = f() 5.>>> a 6.1 7.>>> d 8.4
列表合并成字符串
1.>>> " ".join(["I", "Love", "Python"]) 2.'I Love Python'
链式比较
in 代替 or
1.>>> if x == 1 or x == 2 or x == 3: 2 ... pass 3 ... 4 >>> if x in (1,2,3): 5 ... pass
字典代替多个if else
有下标索引的枚举
>>> for i, e in enumerate(["a","b","c"]): ... print(i, e) ... 0 a 1 b 2 c
生成器
注意区分列表推导式,生成器效率更高
默认字典 defaultdict
>>> d = dict() >>> d['nums'] KeyError: 'nums' >>> >>> from collections import defaultdict >>> d = defaultdict(list) >>> d["nums"] []
字符串格式化
>>> lang = 'python' >>> f'{lang} is most popular language in the world' 'python is most popular language in the world'
列表中出现次数最多的元素
>>> nums = [1,2,3,3] >>> max(set(nums), key=nums.count) 3
或者
from collections import Counter >>> Counter(nums).most_common()[0][0] 3
读写文件
>>> with open("test.txt", "w") as f: ... f.writelines("hello")
判断对象类型,可指定多个类型
>>> isinstance(a, (int, str)) True
类似的还有字符串的 startswith,endswith
前者对人友好,可读性更强,后者对计算机友好,支持 obj == eval(repr(obj))
使用装饰器
如果不使用装饰器,可读性非常差
def say(): return "Hello" >>> makebold(makeitalic(say))() <b><i>Hello</i></b>
以上就是全部内容啦!
最后,小编想说一句话:我是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试真题,面试真题,面试真题等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取
猜你喜欢
- 2024-10-21 Python笔记 list基础 python list常用方法
- 2024-10-21 python函数式编程 python函数经典例程
- 2024-10-21 Python的列表怎么用?你会吗?Python每日学习打卡
- 2024-10-21 Python基础编程20例之四:统计列表中出现最多的元素
- 2024-10-21 如何在python各种列表中求最值? python 求列表的最大值
- 2024-10-21 python列表操作,助你快速掌握列表常用的操作
- 2024-10-21 python入门010:数字列表 python数字序列
- 2024-10-21 python每个list列表元素是一个数组的动态赋值方法
- 2024-10-21 Python | 掌握并熟悉列表、元祖、字典、集合数据类型
- 2024-10-21 Python学习教程:Python列表处理 python列表讲解
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)