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

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

发布时间:2019-03-05 03:32:13 所属栏目:建站 来源:刘志军
导读:Python 开拓中有哪些高级能力?这是知乎上一个题目,我总结了一些常见的能力在这里,也许谈不上多高级,但把握这些至少可以让你的代码看起来 Pythonic 一点。假如你还在凭证类C说话的那套气魄威风凛凛来写的话,在 code review 生怕会要被吐槽了。 列表推导式 chars
副问题[/!--empirenews.page--]

保藏,Python开拓中有哪些高级能力?

Python 开拓中有哪些高级能力?这是知乎上一个题目,我总结了一些常见的能力在这里,也许谈不上多高级,但把握这些至少可以让你的代码看起来 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] 

PACKING / UNPACKING

变量互换

  1. >>> a,b = 1, 2 
  2. >>> a ,b = b,a 
  3. >>> a 
  4. >>> b 

高级拆包

  1. >>> a, *b = 1,2,3 
  2. >>> a 
  3. >>> b 
  4. [2, 3] 

可能

  1. >>> a, *b, c = 1,2,3,4,5 
  2. >>> a 
  3. >>> b 
  4. [2, 3, 4] 
  5. >>> c 

函数返回多个值(着实是自动packing成元组)然后unpacking赋值给4个变量

  1. >>> def f(): 
  2. ...     return 1, 2, 3, 4 
  3. ... 
  4. >>> a, b, c, d = f() 
  5. >>> a 
  6. >>> d 

列表归并成字符串

  1. >>> " ".join(["I", "Love", "Python"]) 
  2. 'I Love Python' 

链式较量

  1. >>> if a > 2 and a < 5: 
  2. ...     pass 
  3. ... 
  4. >>> if 2<a<5: 
  5. ...     pass 

yield from

  1. # 没有行使 field from 
  2. def dup(n): 
  3.     for i in range(n): 
  4.         yield i 
  5.         yield i 
  6.  
  7. # 行使yield from 
  8. def dup(n): 
  9.     for i in range(n): 
  10.     yield from [i, i] 
  11.  
  12. for i in dup(3): 
  13.     print(i) 
  14.  
  15. >>> 

(编辑:湖南网)

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

热点阅读