探秘简单快捷的Python应用程序


在向大家详细介绍Python应用程序之前,首先让大家了解下什么是Python应用程序,然后全面介绍Python应用程序的种种特性,Python的Virtual Machine是一种更高级的Virtual Machine。

但是它不仅为开发者带来许多让人感兴趣的特性,同时在性能方面也有所改善。在上一篇中,我们为读者详细介绍了Python应用程序在核心语言方面的变化,而本文则将要为读者介绍新版本中标准程序库方面的变化。

主要的新增物是一个有序字典类,使其有了自己的PEP。当遍历一个排序后的字典的时候,您将得到一个键列表和一些值。并且其顺序正是其插入的顺序——这正是我们所希望的。 下面我们用一个实例来说明排序后的字典和常规字典之间的区别:

  1.  import HTMLParser  
  2.  
  3. import urllib  
  4.  
  5. import sys  
  6.  
  7. #定义HTML解析器  
  8.  
  9. class parseLinks(HTMLParser.HTMLParser):  
  10.  
  11. def handle_starttag(self, tag, attrs):  
  12.  
  13. if tag == 'a':  
  14.  
  15. for name,value in attrs:  
  16.  
  17. if name == 'href':  
  18.  
  19. print value  
  20.  
  21. print self.get_starttag_text()  
  22.  
  23. #创建HTML解析器的实例  
  24.  
  25. lParser = parseLinks()  
  26.  
  27. #打开HTML文件  
  28.  
  29. lParser.feed(urllib.urlopen( \  
  30.  
  31. "http://www.python.org/index.html").read())  
  32.  
  33. lParser.close() 

如您所见,有序字典维护有个元素的原始顺序,而标准字典则没有。不过有一点要注意,如果你使用命名参数而非键/值对来填充此字典的话。它就维护其顺序。 也许这是一个bug。

因为使用命名参数是一种初始化字典的理想方式,并且个元素有一个明确的从左到右的顺序。我们这里使用的元素与第一个例子完全一样:这个类可以使用一组典型的字典方法即keys()、values()和items()来访问其内容;

不过,这个类的update()方法跟常规字典的update()方法有所不同。它可以接受序列或者值为整数的映射。如果使用的是序列。它会统计元素个数,并将其加到原先元素个数上。对于映射,它会统计该映射中的每个对象,并将结果加到原先的统计个数中。以下代码对上面的示例中已经初始化过的Counter类进行更新:

  1.  import HTMLParser  
  2.  
  3. import urllib  
  4.  
  5. import sys  
  6.  
  7. #定义HTML解析器  
  8.  
  9. class parseLinks(HTMLParser.HTMLParser):  
  10.  
  11. def handle_starttag(self, tag, attrs):  
  12.  
  13. if tag == 'a':  
  14.  
  15. for name,value in attrs:  
  16.  
  17. if name == 'href':  
  18.  
  19. print value  
  20.  
  21. print self.get_starttag_text()  
  22.  
  23. #创建HTML解析器的实例  
  24.  
  25. lParser = parseLinks()  
  26.  
  27. #打开HTML文件  
  28.  
  29. lParser.feed(urllib.urlopen( \  
  30.  
  31. "http://www.python.org/index.html").read())  
  32.  
  33. lParser.close() 

Itertools模块不仅可以处理无穷序列,而且还可以处理有限序列。在Python应用程序中,它引入了两个新的函数:combinations_with_replacement()函数和compress()函数。

  1. 漫谈Python 源代码编制技巧
  2. 简单易于操作的Python 工具详解
  3. 有关Python应用领域进行说明介绍
  4. PythonAndroid面向对象的编程——Python应用程序
  5. 如何使用Python模块解析配置文件 ?

相关内容

    暂无相关文章

评论关闭