摘要
本文部分内容来源于网络,个人收集整理,请勿传播
Python由于语言的简洁性,让我们以人类思考的方式来写代码,新手更容易上手,老鸟更爱不释手。
要写出 Pythonic(优雅的、地道的、整洁的)代码,还要平时多观察那些大牛代码,Github 上有很多非常优秀的源代码值得阅读,比如:requests、flask、tornado,这里小明收集了一些常见的 Pythonic 写法,帮助你养成写优秀代码的习惯。
python技巧
序列解包
1 | a, *rest = [1, 2, 3] |
遍历列表以及索引
1 | ##不推荐 |
字典get和setdefault方法
1 | ##不推荐 |
遍历列表以及索引
1 | ##不推荐 |
列表推导-嵌套
1 | ##不推荐 |
循环嵌套
1 | ##不推荐 |
中间结果尽量使用imap/ifilter代替map/filte
1 | ##不推荐 |
使用any/all函数
1 | ##不推荐 |
属性(property)
1 | ##不推荐 |
使用 with 忽视异常(仅限Python 3)
1 | ##不推荐 |
使用 with 处理加锁
1 | ##不推荐 |
使用占位符
1 | filename = 'foobar.txt' |
链式比较
1 | # 不推荐 |
<.>
和<.?>
有什么区别
<.>
这种匹配称作贪心匹配<.?>
称作非贪心匹配
Python里面search()和match()的区别
match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none
如何用Python来进行查询和替换一个文本字符串?
可以使用sub()
方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])
- replacement是被替换成的文本
- string是需要被替换的文本
- count是一个可选参数,指最大被替换的数量
1 | import re |
subn()方法执行的效果跟sub()一样,不过它会返回一个二维数组,包括替换后的新的字符串和总共替换的数量
1 | import re |
有两个序列a,b,大小都为n,序列元素的值任意整形数
无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
将两序列合并为一个序列,并排序,为序列Source
拿出最大元素Big,次大的元素Small
在余下的序列S[:-2]进行平分,得到序列max,min
将Small加到max序列,将Big加大min序列,重新计算新序列和,和大的为max,小的为min。
1 | def mean( sorted_list ): |