集合

  • 集合是多个元素的无序组合
  • 集合与数学中的集合的概念类似
  • 集合之间无序,每个元素唯一,不存在相同的元素
  • 集合元素不可更改,不能是可变数据类型
  • 集合用大括号{ }表示,元素之间用都好分隔

集合类型的建立和定义

  1. 使用{}建立
  2. 使用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]