探秘簡(jiǎn)單快捷的Python應(yīng)用程序
在向大家詳細(xì)介紹Python應(yīng)用程序之前,首先讓大家了解下什么是Python應(yīng)用程序,然后全面介紹Python應(yīng)用程序的種種特性,Python的Virtual Machine是一種更高級(jí)的Virtual Machine。
但是它不僅為開(kāi)發(fā)者帶來(lái)許多讓人感興趣的特性,同時(shí)在性能方面也有所改善。在上一篇中,我們?yōu)樽x者詳細(xì)介紹了Python應(yīng)用程序在核心語(yǔ)言方面的變化,而本文則將要為讀者介紹新版本中標(biāo)準(zhǔn)程序庫(kù)方面的變化。
主要的新增物是一個(gè)有序字典類,使其有了自己的PEP。當(dāng)遍歷一個(gè)排序后的字典的時(shí)候,您將得到一個(gè)鍵列表和一些值。并且其順序正是其插入的順序——這正是我們所希望的。 下面我們用一個(gè)實(shí)例來(lái)說(shuō)明排序后的字典和常規(guī)字典之間的區(qū)別:
- import HTMLParser
- import urllib
- import sys
- #定義HTML解析器
- class parseLinks(HTMLParser.HTMLParser):
- def handle_starttag(self, tag, attrs):
- if tag == 'a':
- for name,value in attrs:
- if name == 'href':
- print value
- print self.get_starttag_text()
- #創(chuàng)建HTML解析器的實(shí)例
- lParser = parseLinks()
- #打開(kāi)HTML文件
- lParser.feed(urllib.urlopen( \
- "http://www.python.org/index.html").read())
- lParser.close()
如您所見(jiàn),有序字典維護(hù)有個(gè)元素的原始順序,而標(biāo)準(zhǔn)字典則沒(méi)有。不過(guò)有一點(diǎn)要注意,如果你使用命名參數(shù)而非鍵/值對(duì)來(lái)填充此字典的話。它就維護(hù)其順序。 也許這是一個(gè)bug。
因?yàn)槭褂妹麉?shù)是一種初始化字典的理想方式,并且個(gè)元素有一個(gè)明確的從左到右的順序。我們這里使用的元素與***個(gè)例子完全一樣:這個(gè)類可以使用一組典型的字典方法即keys()、values()和items()來(lái)訪問(wèn)其內(nèi)容;
不過(guò),這個(gè)類的update()方法跟常規(guī)字典的update()方法有所不同。它可以接受序列或者值為整數(shù)的映射。如果使用的是序列。它會(huì)統(tǒng)計(jì)元素個(gè)數(shù),并將其加到原先元素個(gè)數(shù)上。對(duì)于映射,它會(huì)統(tǒng)計(jì)該映射中的每個(gè)對(duì)象,并將結(jié)果加到原先的統(tǒng)計(jì)個(gè)數(shù)中。以下代碼對(duì)上面的示例中已經(jīng)初始化過(guò)的Counter類進(jìn)行更新:
- import HTMLParser
- import urllib
- import sys
- #定義HTML解析器
- class parseLinks(HTMLParser.HTMLParser):
- def handle_starttag(self, tag, attrs):
- if tag == 'a':
- for name,value in attrs:
- if name == 'href':
- print value
- print self.get_starttag_text()
- #創(chuàng)建HTML解析器的實(shí)例
- lParser = parseLinks()
- #打開(kāi)HTML文件
- lParser.feed(urllib.urlopen( \
- "http://www.python.org/index.html").read())
- lParser.close()
Itertools模塊不僅可以處理無(wú)窮序列,而且還可以處理有限序列。在Python應(yīng)用程序中,它引入了兩個(gè)新的函數(shù):combinations_with_replacement()函數(shù)和compress()函數(shù)。
【編輯推薦】