-
集合概念
- 集合类似字典,也是用大括号括起来的{ }
- 元素之间用逗号隔开
- 元素在集合中是唯一的
- 集合元素允许修改和删除,但是元素本身的值不能修改
- 集合是没有顺序的,所以不能通过下标获取集合的某个元素
-
集合创建
-
>>> X = set(["abc","xyz","xxx"]) 以列表形式创建集合,列表每个项都是元素
>>> X
{'xxx', 'abc', 'xyz'}
>>> X = set("abc") 以字符串形式创建集合,单个字符都是元素
>>> X
{'a', 'b', 'c'}
>>> X = set({1:"abc",2:"xyz",3:"xxx"}) 以字典形式创建集合,集合的KEY都是元素
>>> X
{1, 2, 3}
-
集合不能通过下标访问
-
>>> X[0] 集合是没有顺序的,所以不能通过下标获取集合的某个元素
Traceback (most recent call last):
File "<pyshell#300>", line 1, in <module>
X[0]
TypeError: 'set' object does not support indexing
-
集合追加元素和删除元素
-
>>> X.add('a')
>>> X
{'a', 1, 2, 3}
>>> X.remove(2)
>>> X
{'a', 1, 3}
>>>
-
集合交集
-
>>> X
{'a', 1, 3}
>>> Y
{'a', 'z', 'b', 'h'}
>>> X &Y
{'a'}
-
集合并集
-
>>> X
{'a', 1, 3}
>>> Y
{'a', 'z', 'b', 'h'}
>>> X | Y
{'a', 1, 'z', 3, 'b', 'h'}
-
集合差集
-
>>> X
{'a', 1, 3}
>>> Y
{'a', 'z', 'b', 'h'}
>>> X - Y
{1, 3}
>>>
-
集合for运算
-
>>> for item in set('abc'):print(item *3)
ccc
aaa
bbb
>>>
-
元素是否在集合中判断
-
>>> S = set('abc')
>>> 'a' in S
True
>>> 'e' in S
False
>>>
-
两个集合是否互为父子集合判断
-
>>> S = set({1,2,3})
>>> S.issubset(range(0,5)) range(0,5)的范围是:0,1,2,3,4,5
True
>>>>>> S = set("123")
>>> S.issubset(range(0,5)) 字符1,2,3和数字1,2,3是不一样的
False
-
>>> S
{('a', 'b', 'c'), 1, 2, 3}
>>> ('a','b','c') in S 判断元组是否存在集合
True
-
>>> S
{('a', 'b', 'c'), 1, 2, 3}
>>> {1,2} < S 用符号比较
True
>>> {1,2,3} < S
True
>>> {1,2,3,4} < S
False
>>>
-
集合不能嵌入列表和字典
-
>>> S
{1, 2, 3}
>>> S.add(['a','b','c'])
Traceback (most recent call last):
File "<pyshell#93>", line 1, in <module>
S.add(['a','b','c'])
TypeError: unhashable type: 'list'
-
>>> S.add({1:'a',2:'b',3:'c'})
Traceback (most recent call last):
File "<pyshell#94>", line 1, in <module>
S.add({1:'a',2:'b',3:'c'})
TypeError: unhashable type: 'dict'
>>>
-
集合可以嵌入元组
-
>>> S.add(('a','b','c'))
>>> S
{('a', 'b', 'c'), 1, 2, 3}
>>>
-
集合解析
-
>>> {x for x in 'abcd'}
{'d', 'c', 'a', 'b'}
>>> {x**2 for x in [1,2,3,4]}
{16, 1, 4, 9}
>>> {x*4 for x in 'abcd'}
{'aaaa', 'cccc', 'dddd', 'bbbb'}
>>>
-
集合帮助列表去重
-
>>> L = [1,2,3,4,5,6,7,1,2,3,4]
>>> L = list(set(L))
>>> L
[1, 2, 3, 4, 5, 6, 7]
>>>
-
元素存在一个集合但不存在另外集合
-
>>> S
{('a', 'b', 'c'), 1, 2, 3}
>>> X = {1,2}
>>> S^X 用操作符: ^
{('a', 'b', 'c'), 3}
>>>