7.9 集合类型内建方法

7.9.1 方法(所有的集合方法)

我们己看到很多和内建方法等价的操作符,表7.4做了小结:

内建方法copy()没有等价的操作符。和同名的字典方法一样,copy()方法比用像set()、frozenset()或dict()这样的工厂方法复制对象的副本要快。

7.9 集合类型内建方法 - 图1

7.9.2 方法(仅适用于可变集合)

表7.5总结了所有可变集合的内建方法,和上面的方法相似,我们已经看过许多和它们等价的操作符。

7.9 集合类型内建方法 - 图2

7.9 集合类型内建方法 - 图3

新的方法有add()、remove()、discard()、pop()、clear()。这些接受对象的方法,参数必须是可哈希的。

7.9.3 操作符和内建方法比较

像你看到的,很多内建的方法几乎和操作符等价。我们说“几乎等价”,意思是它们间是有一个重要区别:当用操作符时,操作符两边的操作数必须是集合。在使用内建方法时,对象也可以是迭代类型的。为什么要用这种方式来实现呢?Python的文档里写明:采用易懂的set(‘abc’).intersection(‘cbs’)可以避免使用set(‘abc’)[and] ‘cbs’这样容易出错的构建方法。