集合
- 集合是多个元素的无序组合
- 集合与数学中的集合的概念类似
- 集合之间无序,每个元素唯一,不存在相同的元素
- 集合元素不可更改,不能是可变数据类型
- 集合用大括号{ }表示,元素之间用都好分隔
集合类型的建立和定义
- 使用{}建立
- 使用set( )建立
#使用大括号{}建立集合
A = {"python",123,("python",123)}
print(A)
#使用set()建立集合
B = set("python123")
print(B)
#集合中元素唯一
C = {"python",123,123,"python"}
print(C)
运行结果:
{('python', 123), 123, 'python'}
{'p', 'y', '3', 'n', 't', 'o', '2', 'h', '1'}
{123, 'python'}
>>>
集合操作符:
操作符 | 作用 |
---|---|
S|T | 返回一个包含集合S和集合T中的所有元素的新集合 |
S - T | 返回一个包含在集合S中,但不在集合T中的元素的新集合 |
S & T | 返回一个包含同时在集合S和集合T中的元素的新集合 |
S ^ T | 返回一个包含集合S和集合T中的非元素的新集合 |
S <= T 或者 S < T | 判断集合S和集合T的子集关系,返回True/False |
S >= T 或者 S > T | 判断集合S和集合T的子集关系,返回True/False |
S |= T | 更新集合S,使集合S包含集合S和集合T中的所有元素 |
S -= T | 更新集合S,使集合S包含在集合S中,但不在集合T中的元素 |
S &= T | 更新集合S,使集合S包含同时在集合S和集合T中的元素 |
S ^= T | 更新集合S,使集合S包含集合S和集合T中的非元素 |
示例:
A = {"p","y",1,2,3,123}
print(A)
B = set("python123")
print(B)
{1, 2, 3, 'p', 'y', 123}
{'o', '2', '1', 'h', 'p', 'y', 't', '3', 'n'}
C = A - B
print(C)
{123, 1, 2, 3}
D = B - A
print(D)
{'o', '2', '1', 'h', 't', '3', 'n'}
E = A & B
print(E)
{'p', 'y'}
F = A | B
print(F)
{'o', 1, 2, 3, '2', '1', 'h', 'p', 'y', 't', '3', 'n', 123}
G = A ^ B
print(G)
{'o', 1, 2, 3, '2', '1', 'h', 't', '3', 'n', 123}
集合处理方法:
函数或者方法 | 作用 |
---|---|
S.add(x) | 如果x不在集合S中,将x增加到S中 |
S.discard(x) | 移除S中的元素x,如果x不在集合S中,不报错 |
S.remove(x) | 移除S中的元素x,如果x不在集合S中,报错 |
S.clear(x) | 移除S中的所有元素 |
S.pop(x) | 随机返回S中的一个元素,更新S,若S为空则报错 |
函数或者方法 | 作用 |
---|---|
S.copy() | 复制集合S的一个副本 |
len(S) | 返回集合S的元素的个数 |
x in S | 判断元素x是否在集合S中,是则返回True,不是则返回False |
x not in S | 判断元素x是否在集合S中,是则返回Flase,不是则返回True |
set(x) | 讲其他类型变量x转化为集合类型 |
集合的应用示例:
#集合的遍历
A = {"p","y",1,2,3,123}
print(A)
for item in A:
print(item,end=",")
{1, 2, 3, 'p', 'y', 123}
1,2,3,p,y,123,
#集合的去重
B = ["a","a","b","b",1,2,3,123]
S = set(B)
print(B)
print(S)
['a', 'a', 'b', 'b', 1, 2, 3, 123]
{1, 2, 3, 'b', 'a', 123}
#将集合转化成列表
C = list(S)
print(C)
[1, 2, 3, 'b', 'a', 123]