写在前面:
已经连续翻译python3.2官方文档好长时间,今晚第一次翻译的文章被网友阅读上千次,激动不已,在此特别谢谢各位网友。看到大家的捧场,兴奋得有点失眠,所以顺便把set集合也翻译了,最后在谢谢各位网友,翻译不当之处请吐槽。
3.4 Set集合
Python还包含一个集合的数据类型。一个Set 是一个不包含重复元素的无序集合。基本应用是成员资格测试和消除重复元素。 Set对象也提供一些算术操作符,比如连接,交集,差值和堆成差。
花括号或set()方法都可以用来创建集合。 注意如果你想要创建一个空集合,必须要用set()而不能用{}。 后者创建了一个空字典,空字典我们将在下一节讨论。
对于集合的使用在这里做一简单示范:
>>> basket = {’apple’, ’orange’, ’apple’, ’pear’, ’orange’, ’banana’}
>>> print(basket) # show that duplicates have been removed #显示除去重复元素
{’orange’, ’banana’, ’pear’, ’apple’}
>>> ’orange’ in basket # fast membership testing #快速成员检测
True
>>> ’crabgrass’ in basket
False
>>> # 展示通过set操作从两个词中获得唯一的字母
...
>>> a = set(’abracadabra’)
>>> b = set(’alacazam’)
>>> a # unique letters in a 在a中唯一字母
{’a’, ’r’, ’b’, ’c’, ’d’}
>>> a - b # letters in a but not in b 在a中但不在b中
{’r’, ’d’, ’b’}
>>> a | b # letters in either a or b 在a或b中
{’a’, ’c’, ’r’, ’d’, ’b’, ’m’, ’z’, ’l’}
>>> a & b # letters in both a and b 在a且在b中
{’a’, ’c’}
>>> a ^ b # letters in a or b but not both 在a或在b中,但不同时在两者中
{’r’, ’d’, ’b’, ’m’, ’z’, ’l’}
Like for lists, there is a set comprehension syntax:
像列表一样,集合也有“理解语法”。
>>> a = {x for x in ’abracadabra’ if x not in ’abc’}
>>> a
{’r’, ’d’}