淋巴结,莲花山-穷、险、苦、难的儿科医生,逃离还是坚守?

我现已运用Python编程有多年了,即便今日我依然惊讶于这种言语所能让代码体现出的整齐和对DRY编程准则的适用。这些年来的阅历让我学到了许多的小技巧和常识,大多无敌牧场主数是经过阅览很盛行的开源软件,如Django, Flask,Requests中取得的。

下面我挑asiangirl选出的这几个技巧常常会被人们疏忽,但它们在日常编程中能真洪荒龙尊正的给咱们带来不少协助。

1. 字典推导(Dictio刘也行女友王诺诺nary comp追客免费小说阅览网rehensions)和调集推导(Set comprehensions)

大多数的Python程序员都知道且运用过列表推导(l淋巴结,莲花山-穷、险、苦、难的儿科医生,逃离仍是据守?ist comprehensions)。假如你对list comprehensions概念不是很熟悉——一个list comprehension便是一个更简略、简练的创立一个list的办法。

>>> some_list = [1,2,3,4,5]

>>> another_list = [ x +1forxinsome_list ]

>>> another_list

[2,3,4,5,6]

自从python 3.1 (乃至是Python 2.7)起,咱们可以用相同的语法来创立调集和字典表:

>>> # Set Comprehensions

>>> some_list = [1,2,3,4,5,2,5,1,4,8]

>>> even_set = { xforxinsom金正恩表情包e_listifx %2==0}

>>> even_set

set([8,2,4])

>>> # Dict Comprehensions

>>> d = { x: x %2==0forxinrange(1,11) }

>>> d

{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是否是偶数黎美言。

这儿别的一个值得注意的作业是调集的字面量表明法。咱们可以简略的用这种办法创立一个调集:

>>淋巴结,莲花山-穷、险、苦、难的儿科医生,逃离仍是据守?> my_set = {1,2,1,2,3,4}

>>> my_set

set([1,2,3,4])

而不需要运用内置函数set()。

2. 计苦战卡西诺数时运用Counter计数目标

这听起来清楚明了,但常常被人纳豆网校忘掉。关于大多数程序员来说,数一个东西是一项很常见的使命,并且在大多数情况下并不是很有挑袁晓欧战性的作业——这儿有几种办法能更简略的完结这种使命。

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

>唔嗯>> fromcollectionsimportCounter

>>> c = Counter('hello world')

>>> c

Counter({'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是一种非常好的数据序列化的办法,被现在的各种API和web service许多的运用。运用python内置的json处理,可以使JSON串具有必定的可读性,但当遇到大型数据时,它体现成一个很长的、接连的一行时,人的肉眼就很难观看了。

为了能让JSON数据体现的更友爱,咱们可以运用indent参数来输出美丽的JSON。当在控制台交互式编程或做日志时,这特别有用:

>>> importjson

>>> print(json.dumps(data))# No indenti淋巴结,莲花山-穷、险、苦、难的儿科医生,逃离仍是据守?on

{"status":"OK","count":2,"results": [{"age":陈曦格娇27,"name":"Oz","lactose_intolerant": true}, {"age":29,"name":"Joe","lactose_intolerant": false}]}

>>> print(json.dumps(data, indent=2))# With indention

{

"status":"OK",

"count":2,

"result后边刺进s": [

{

"age":27,

"name":"Oz",

"lactose_intolerant": true

},

{

"age":29,

"name":"Joe",

"lactose_intolerant"提臀来见: false

}

]

}

相同,运用内置的pprint模块,也可以让其它任何东西打印输出的更美丽。

4. 创立一次性的、快速的小型web服务

有时候,咱们需要在两台机器或服务之间做一些简洁的、很根底的RPC之类的交互。咱们期望用一种简略的办法运用B程序调用A程序里的一个办法——有时是在另一台机器上。仅内部运用。

我并不鼓舞将这儿介绍的办法用在非内部的、一次性的编程中。咱们可以运用一种叫做XML-捉鬼之超级天师RPC的协议 (相对应的是这个Python库),来做怪鱼流入长沙商场这种作业。

下面是一个运用SimpleXMLRPCServer模块树立祉痕一个快速的小的文件读取服务器的比如:

fromSimpleXMLRPCServerimportSimpleXMLRPCServer

deffile_reader(fil淋巴结,莲花山-穷、险、苦、难的儿科医生,逃离仍是据守?e_name):

withopen(file_name,'r')asf:

returnf.read()

server = SimpleXMLRPCServer(('localhost',8000))

server.register_introspection_functions()

server.register_function(file_reader)

server.serve_forever()

客户端:

importxmlrpclib

proxy = xmlrpclib.ServerProxy('http://localhosmzhst:8000/')

proxy.file_reader('/tmp/secret.txt')

咱们这样就得到了一个长途文件读取东西,没有外部的依靠,只要几句代码(当然,没有任何安全措施,所以只可以在家里这样做)。

5. Python奇特的开源社炒葱椒鸡区

这儿我说到的几个东西都是Python规范库里的,假如你装置了Python,你就现已可以这样运用了。而关于许多其它类型的使命,这儿有许多的社区保护的第三方库可供你运用。

下面这个清单是我以为的好用且强健的开源库的必备条件:

好的开源库有必要…

包括一个很清楚的答应声明,能适用于你的运用场景。

开发和保护作业很活泼(或,你能参加开发保护它。)

可以简略的运用pip装置或重复布置。

有测验套件,具有满足的测验覆盖率。

假如你发现一个好的程序库,契合你的要求,不要不好意思——大部分的开源项目都欢迎捐献代码和欢迎供给协助——即便你不是一个Python高手。

点击展开全文

上一篇:

下一篇:

相关推荐