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

Python的这几个技巧,简直屌爆了

发布时间:2019-03-03 02:13:14 所属栏目:建站 来源:佚名
导读:我已经行使Python编程有多年了,纵然本日我如故诧异于这种说话所能让代码示意出的整洁和对DRY编程原则的合用。这些年来的经验让我学到了许多的小能力和常识,大大都是通过阅读很风行的开源软件,如Django, Flask,Requests中得到的。 下面我挑选出的这几个
副问题[/!--empirenews.page--]

Python的这几个能力,的确屌爆了

我已经行使Python编程有多年了,纵然本日我如故诧异于这种说话所能让代码示意出的整洁和对DRY编程原则的合用。这些年来的经验让我学到了许多的小能力和常识,大大都是通过阅读很风行的开源软件,如Django, Flask,Requests中得到的。

下面我挑选出的这几个能力经常会被人们忽略,但它们在一般编程中能真正的给我们带来不少辅佐。

1. 字典推导(Dictionary comprehensions)和荟萃推导(Set comprehensions)

大大都的Python措施员都知道且行使过列表推导(list comprehensions)。假如你对list comprehensions观念不是很认识——一个list comprehension就是一个更简短、简捷的建设一个list的要领。

  1. >>> some_list = [1, 2, 3, 4, 5]  
  2. >>> another_list = [ x + 1 for x in some_list ]  
  3. >>> another_list 
  4. [2, 3, 4, 5, 6] 

自从python 3.1 (乃至是Python 2.7)起,我们可以用同样的语法来建设荟萃和字典表:

  1. >>> # Set Comprehensions 
  2. >>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]  
  3. >>> even_set = { x for x in some_list if x % 2 == 0 }  
  4. >>> even_set 
  5. set([8, 2, 4])  
  6. >>> # Dict Comprehensions  
  7. >>> d = { x: x % 2 == 0 for x in range(1, 11) }  
  8. >>> d 
  9. {1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True} 

在第一个例子里,我们以some_list为基本,建设了一个具有不一再元素的荟萃,并且荟萃里只包括偶数。而在字典表的例子里,我们建设了一个key是不一再的1到10之间的整数,value是布尔型,,用来指示key是否是偶数。

这里其它一个值得留意的工作是荟萃的字面量暗示法。我们可以简朴的用这种要领建设一个荟萃:

  1. >>> my_set = {1, 2, 1, 2, 3, 4}  
  2. >>> my_set 
  3. set([1, 2, 3, 4]) 

而不必要行使内置函数set()。

2. 计数时行使Counter计数工具

这听起来显而易见,但常常被人健忘。对付大大都措施员来说,数一个对象是一项很常见的使命,并且在大大都环境下并不是很有挑衅性的工作——这里有几种要领能更简朴的完成这种使命。

Python的collections类库里有个内置的dict类的子类,是专门来干这种工作的:

  1. >>> from collections import Counter 
  2. >>> c = Counter('hello world')  
  3. >>> c 
  4. Counter({'l': 3, 'o': 2, ' ': 1, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})  
  5. >>> c.most_common(2) 
  6. [('l', 3), ('o', 2)] 

3. 大度的打印出JSON

JSON是一种很是好的数据序列化的情势,被现在的各类API和web service大量的行使。行使python内置的json处理赏罚,可以使JSON串具有必然的可读性,但当碰着大型数据时,它示意成一个很长的、持续的一行时,人的肉眼就很难寓目了。

为了能让JSON数据示意的更友爱,我们可以行使indent参数来输出大度的JSON。当在节制台交互式编程或做日记时,这尤其有效:

  1. >>> import json 
  2.  
  3. >>> print(json.dumps(data))  # No indention 
  4. {"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]} 
  5.  
  6. >>> print(json.dumps(data, indent=2))  # With indention 
  7.  
  8.   "status": "OK", 
  9.   "count": 2, 
  10.   "results": [ 
  11.  
  12.     { 
  13.       "age": 27, 
  14.       "name": "Oz", 
  15.  
  16.       "lactose_intolerant": true 
  17.     }, 
  18.     { 
  19.       "age": 29, 
  20.  
  21.       "name": "Joe", 
  22.       "lactose_intolerant": false 
  23.     } 
  24.   ] 
  25.  

同样,行使内置的pprint模块,也可以让其余任何对象打印输出的更大度。

4. 建设一次性的、快速的小型web处事

偶然辰,我们必要在两台呆板或处事之间做一些轻盈的、很基本的RPC之类的交互。我们但愿用一种简朴的方法行使B措施挪用A措施里的一个要领——偶然是在另一台呆板上。仅内部行使。

我并不勉励将这里先容的要领用在非内部的、一次性的编程中。我们可以行使一种叫做XML-RPC的协议 (相对应的是这个Python库),来做这种工作。

(编辑:河北网)

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

热点阅读