7.4 集合及其内置方法

集合set

作用:群体之间做比较,不涉及单个元素,当你需要做关系运算,去重这些操作的时候,需要用到集合。

定义:

s = {1,2,3,4,5,6}  # 等价于 s = set({1,2,3,4,5,6})
print(type(s))  # <class 'set'>
s1 = set()
print(type(s1))  # 注意在定义空集合的只能用关键字set
# <class 'set'>
x = {}  # 如果你仅仅只写了一个大括号 那么python默认将它当做字典类型
print(type(x))  # <class 'dict'>
t = ()  
print(type(t))  # <class 'tuple'>
 

# 集合的元素遵循三个原则:
# 1:每个元素必须是不可变类型
  # 可变:不可hash
  # 不可变:可hash

s = {1,2,3,4,5,6,'a',(1,2),[1,2]}  # 报错
s = {1,2,3,4,5,6,'a',(1,2),{"name":'jason'}}  # 报错

#每个元素都得是不可变类型

# 2:没有重复的元素 

s = {1,2,2,2,2,2,2,2,2,2,3,4,4,4,4,4,5}
print(s)  # {1, 2, 3, 4, 5} # 自动将重复的元素 去除

# 3:无序

s = {1, 2, 3, 4, 5, 6}
print(s[1])
#报错,因为没有索引

# 注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

优先掌握

1. 长度len

s = {1,2,3,4}
print(len(s))  # 4

2. 成员运算in和not in

3. |合集
4. &交集
5. -差集
6. ^对称差集
7. ==

s = {1,2,3}
s1 = {3,1,2}
print(s == s1)  # True

8. 父集:>,>=

s = {1,2,3,4,55}
s2 = {1,2,666}
print(s >= s2)  # False # s是否包含s2

"""
issubset()
issuperset()
"""

9. 子集:<,<=

pythons = {'jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'}
linux = {'frank', 'jerry', 'tank', 'egon', 'alex'}
# 既报名python也报名linux的学生姓名
print(pythons & linux)  # 交集

# 只报名python的学生姓名
print(pythons - linux)

# 只报名linux的学生姓名
print(linux - pythons)

# 没有同时报名两门课程的学生姓名
print(pythons ^ linux)  # 对称差集

# 取出所有报了名的学生姓名
print(pythons | linux)



s = {1,2,3,4,5}
print(s.add(666))
print(s.add((1,2,3,4)))  # 将容器类型也当成一个元素传入
s.
# print(s.remove(1))
# print(s)
# print(s.discard(888888888))
# print(s)

猜你喜欢

转载自www.cnblogs.com/PowerTips/p/11135195.html
7.4