教你几个python实用的技巧

  介绍

本篇文章给大家分享的是有关教你几个python实用的技巧,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> 1。字典推导(字典理解)和集合推导(理解)

大多数的Python程序员都知道且使用过列表推导(列表理解)。如果你对列表理解概念不是很熟悉——一个列表就理解是一个更简短,简洁的创建一个列表的方法。

在祝辞祝辞some_list=[1、2、3、4、5)      在在在another_list=[x + 1 x some_list)      在在在another_list   (2、3、4、5、6)

自从python 3.1(甚至是python 2.7)起,我们可以用同样的语法来创建集合和字典表:

在祝辞祝辞#设置理解   在在在some_list=[1、2、3、4、5、2、5、1、4、8)      在在在even_set={x x some_list如果x % 2==0}      在在在even_set   集([8、2、4)      在在在# Dict理解      在在在d={x: x % 2==0 x的范围(11)}      在在在d   {1:假的,2:真的,3:假的,4:真的,5:假,6:真的,7:假的,8:真的,9:假的,10:真正}

在第一个例子里,我们以some_list为基础,创建了一个具有不重复元素的集合,而且集合里只包含偶数。而在字典表的例子里,我们创建了一个关键是不重复的1到10之间的整数,值是布尔型,用来指示关键是否是偶数。

这里另外一个值得注意的事情是集合的字面量表示法。我们可以简单的用这种方法创建一个集合:

在祝辞祝辞my_set={1、2、1、2、3、4}      在在在my_set   集([1、2、3、4])

而不需要使用内置函数集()。

<强> 2。计数时使用计数器计数对象

这听起来显而易见,但经常被人忘记。对于大多数程序员来说,数一个东西是一项很常见的任务,而且在大多数情况下并不是很有挑战性的事情,这里有几种方法能更简单的完成这种任务。

Python的集合类库里有个内置的dict类的子类,是专门来干这种事情的:

在祝辞祝辞从进口计数器集合   在在在c=计数器(hello world)      在在在c   计数器({l: 3 o: 2: 1, e: 1, d: 1, h: 1, r: 1 w: 1})      在在在c.most_common (2)   [(l, 3), (o, 2)]

<强> 3。漂亮的打印出JSON

JSON是一种非常好的数据序列化的形式,被如今的各种web服务API和大量的使用。使用python内置的JSON处理,可以使JSON串具有一定的可读性,但当遇到大型数据时,它表现成一个很长的,连续的一行时,人的肉眼就很难观看了。

为了能让JSON数据表现的更友好,我们可以使用缩进参数来输出漂亮的JSON。当在控制台交互式编程或做日志时,这尤其有用:

在祝辞祝辞进口json      在在在print (json.dumps(数据)#没有凹痕   {“status":“OK",“count": 2,“results": [{“age": 27日“name":“Oz",“lactose_intolerant":真正的},{“age": 29日“name":“Joe",“lactose_intolerant":假}]}      在在在打印(json。转储(数据、缩进=2))#定货      {   “status":“OK"   “count": 2   “results":(      {   “age": 27岁   “name":“Oz"      “lactose_intolerant":没错   },   {   “age": 29日      “name":“Joe"   “lactose_intolerant":假的   }   ]      }

同样,使用内置的pprint模块,也可以让其它任何东西打印输出的更漂亮。

<强> 4。创建一次性的,快速的小型web服务

有时候,我们需要在两台机器或服务之间做一些简便的,很基础的RPC之类的交互。我们希望用一种简单的方式使用B程序调用一程序里的一个方法,有时是在另一台机器上。仅内部使用。

我并不鼓励将这里介绍的方法用在非内部的,一次性的编程中。我们可以使用一种叫做xml - RPC的协议(相对应的是这个Python库),来做这种事情。

下面是一个使用SimpleXMLRPCServer模块建立一个快速的小的文件读取服务器的例子:

  
  def file_reader (file_name):
  
  张开(file_name, r) f:
  返回f.read ()
  
  服务器=SimpleXMLRPCServer ((localhost, 8000))
  server.register_introspection_functions ()
  
  server.register_function (file_reader)
  
  server.serve_forever () 

客户端

进口xmlrpclib
  代理=xmlrpclib。ServerProxy (http://localhost: 8000/)
  
  代理。file_reader (/tmp/秘密。txt) 

教你几个python实用的技巧