本篇文章给大家分享的是有关教你几个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实用的技巧