1. set() remove the repeat elements
2.set集合操作
reference from: http://blog.csdn.net/sicofield/article/details/40083653
点击(此处)折叠或打开
- >>> seq = [1,2,3,1,2,3,'a','hello','a','world']
- >>> seq_set = set(seq)
- >>> seq_set
- set(['a', 1, 2, 3, 'world', 'hello']) #去除了重复对象
-
- >>> string = "hello world"
- >>> string_set = set(string)
- >>> string_set
- set([' ', 'e', 'd', 'h', 'l', 'o', 'r', 'w']) #sting也是Python中的一种序列
-
- #set是一种集合,当然可以使用 in/not in, len
- >>> 'h' in string_set
- True
- >>> 'a' in string_set
- False
- >>> len(string_set)
- 8
-
- #set的增删操作
-
- # s.add(x)
- # 向 set “s”中增加元素 x
-
- # s.remove(x)
- # 从 set “s”中删除元素 x, 如果不存在则引发 KeyError
-
- # s.discard(x)
- # 如果在 set “s”中存在元素 x, 则删除
-
- # s.pop()
- # 删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发 KeyError
-
- # s.clear()
- # 删除 set “s”中的所有元素
点击(此处)折叠或打开
- #子集运算
- >>> s = set([1,2,3,4,5])
- >>> t = set([1,2,3])
- >>> s.issubset(t) #s是否为t的子集,相当于s<=t
- False
- >>> t.issubset(s) #t是否为s的子集,相当于s>=t
- True
- >>> s<=t
- False
- >>> t<=s
- True
- >>> s<t
- False
- >>> s>t
- True
- >>> s==t
- False
- >>> x = set([1,2,3])
- >>> x==t #两set是否相等
- True
- >>> set1 = set([1,2])
- >>> set2 = set([2,3])
- # 合集
- # s.union(t)
- # s | t
- # 返回一个新的 set 包含 s 和 t 中的每一个元素
- >>> set1.union(set2)
- set([1, 2, 3])
- >>> set1 | set2
- set([1, 2, 3])
- # 并集
- # s.intersection(t)
- # s & t
- # 返回一个新的 set 包含 s 和 t 中的公共元素
- >>> set1.intersection(set2)
- set([2])
- >>> set1 & set2
- set([2])
- # 差集
- # s.difference(t)
- # s - t
- # 返回一个新的 set 包含 s 中有但是 t 中没有的元素
- >>> set1.difference(set2)
- set([1])
- >>> set1 - set2
- set([1])
- # 叫什么集 我也不知道
- # s.symmetric_difference(t)
- # s ^ t
- # 返回一个新的 set 包含 s 和 t 中不重复的元素
- >>> set1.symmetric_difference(set2)
- set([1, 3])
- >>> set1 ^ set2
- set([1, 3])
- # union(), intersection(), difference() 和 symmetric_difference()这种函数版本将会接受任何iterable对象作为参数。
- # 相反,它们的运算符版本(operator based counterparts)要求参数必须是 sets。
- >>> set1.union([3,4,5])
- set([1, 2, 3, 4, 5])
- >>> set1 | [3,4,5]
- Traceback (most recent call last):
- File "", line 1, in <module>
- set1 | [3,4,5]
- TypeError: unsupported operand type(s) for |: 'set' and 'list'
- >>>
- # 另外还有
- # s.update(t)
- # s |= t
- # 返回增加了 set “t”中元素后的 set “s”
- # s.intersection_update(t)
- # s &= t
- # 返回只保留含有 set “t”中元素的 set “s”
- # s.difference_update(t)
- # s -= t
- # 返回删除了 set “t”中含有的元素后的 set “s”
- # s.symmetric_difference_update(t)
- # s ^= t
- # 返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s”
reference from: http://blog.csdn.net/sicofield/article/details/40083653