加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

收藏,Python开发中有哪些高级技巧?

发布时间:2019-03-01 21:11:30 所属栏目:建站 来源:刘志军
导读:副标题#e# Python 开发中有哪些高级技巧?这是知乎上一个问题,我总结了一些常见的技巧在这里,可能谈不上多高级,但掌握这些至少可以让你的代码看起来 Pythonic 一点。如果你还在按照类C语言的那套风格来写的话,在 code review 恐怕会要被吐槽了。 列表推

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

  1. def fun(x): 
  2.     if x == 'a': 
  3.         return 1 
  4.     elif x == 'b': 
  5.         return 2 
  6.     else: 
  7.         return None 
  8.  
  9. def fun(x): 
  10.     return {"a": 1, "b": 2}.get(x) 

有下标索引的枚举

  1. >>> for i, e in enumerate(["a","b","c"]): 
  2. ...     print(i, e) 
  3. ... 
  4. 0 a 
  5. 1 b 
  6. 2 c 

生成器

注意区分列表推导式,生成器效率更高

  1. >>> g = (i**2 for i in range(5)) 
  2. >>> g 
  3. <generator object <genexpr> at 0x10881e518> 
  4. >>> for i in g: 
  5. ...     print(i) 
  6. ... 
  7. 16 

默认字典 defaultdict

  1. >>> d = dict() 
  2. >>> d['nums'] 
  3. KeyError: 'nums' 
  4. >>> 
  5.  
  6. >>> from collections import defaultdict 
  7. >>> d = defaultdict(list) 
  8. >>> d["nums"] 
  9. [] 

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!