`

python笔记---sets

阅读更多

5.4.Sets

python还包含一个数据类型sets。set是个无序的没有重复元素的集合。set还包括数学的集合操作。

创建set的方法有2种:大括号、函数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

>>> # Demonstrate set operations on unique letters from two words
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  # unique letters in a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b                              # letters in a but not in b
{'r', 'd', 'b'}
>>> a | b                              # letters in either a or b
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # letters in both a and b
{'a', 'c'}
>>> a ^ b                              # letters in a or b but not both

 以上是从英文教程中翻译来的。

a = set('abracadabra')

这句让我很困惑,为什么连字符串也给去重了?看了下函数注释:

set Found at: builtins
set() -> new empty set object
    set(iterable) -> new set object
    
    Build an unordered collection of unique elements.

 原来是iterable的子类的做为参数。也就是说可以是str、bytes、byte tuple、list、range、tuple都可以。

b = set((1,1,2,3)) # tuple
print(b)

b = set('1212') # str
print(b)

b = set([1212,'ab',1212]) # list
print(b)

b = set(range(0,5,2)) # range
print(b)

 

set的内容操作和list也是一样的。

>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'r', 'd'}
 


  


  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics