day9-总结

集合(set)

1.什么是集合

python内置的容器型数据类型.可变(支持增删),无序(不支持下标操作)
{元素1,元素2,元素3...}
元素要求是不可变并且唯一

set1 = {1, 2, 3, 4, 'abc'}
print(set1)

空集合写法 - 直接写set3 = { } 类型是字典
set3 = set()

2.查

集合没有办法单独取出某一个元素:只能遍历

set1 = {1, 2, 3, 4, 'abc'}
for item in set1:
    print(item)

3.增

集合.add(元素) - 在集合中添加指定的元素

set1 = {1, 2, 3, 4, 'abc'}
set1.add(100)
print(set1)

集合 .update(序列) - 将序列中的元素(不可变的)添加到集合中

set1 = {1, 2, 3, 4, 'abc'}
set1.update('abc')

4.删

集合.remove(元素) - 删除集合中指定的元素(元素不存在会报错)

set2 = {1, 2, 3, 100, 200}
set2.remove(1)
print(set2)

集合.clear() - 清空集合

5. 改 - 不支持改操作(元素不可变) 只能先删想改的元素,在增加一个想要的元素

6.数学集合运算(集合应用的重点)

包含关系(<=, >=),并集(&&),交集,差集,补集
1).包含关系(>=, <=)
集合1 >= 集合2 - 判断集合1中是否包含集合2
2)并集(|)
集合1 | 集合2 - 将集合1集合2所有元素合并在一起产生一个新的集合
3)交集(&)
集合1 & 集合2 - 将集合1集合2重复的元素合并在一起产生一个新的集合
4)差集 (-)
集合1 - 集合2 - 求集合1除了和集合2公共的元素以外的元素
5)补集(^) - 求两个集合除了公共部分剩下的部分
^ 如何打出来(Shift+6)

7.相关操作

in / not in
set()

总结:集合的应用只要表现在去重和集合的数学运算

# 练习:用三个列表表示三门学科的选课学生姓名
# 求:选课学生人数
name = ['name1', 'name2', 'name3', 'name4', 'name5', 'name6']
name1 = ['name1', 'name2', 'name7', 'name8', 'name9', 'name10']
name2 = ['name2', 'name3', 'name4', 'name7', 'name11', 'name12']
n = set(name) | set(name1) | set(name2)
print(len(n), n)
# 求只选了第一门学科的人的数量和名字
m = set(name) - set(name1) - set(name2)
print(len(m), m)
# 求只选了一门学科的人和名字
s = set(name1) - set(name) - set(name2)
d = set(name2) - set(name) - set(name1)
e = s | d | m
print(len(e), e)
# 求选了三门学科的学生和数量 q = set(name1) & set(name) & set(name2)
print(len(q), q)
# 求只选了两门学科的学生和数量
t = n - e - q
print(len(t), t)

容器

1容器类型: 字符串(str), 列表(list), 元祖(tuple), 字典(dict), 集合(set)

2.特点

# str: 不可变、 有序
# list: 可变、 有序
# tuple :不可变、 有序
# dict: 可变(值可变,key不可变)、无序
# set: 可变 、 无序

3.值

# str:  " "  或者 ' '或者"""  """或者''' '''(python中三个'或者三个"""也表示字符串)
# list: [ ] 元素可以是任何的数据类型,类型可以不一致,元素可以重复(实际开发时,元素类型都是一样的最好选列表)
# tuple:() 只有一个元素时: tuple1 = (1,) 元素可以是任何的数据类型,类型可以不一致,元素可以重复
# dict: {key: value}  保存键值对 - key: 值   key 不可变,唯一的   value(值) 可以是任何的数据类型,类型可以不一致,可以重复
# set : {}  空集表示为 n = set{} 元素唯一不可变的

4.增

"""
list: 列表.append(元素)、 列表.insert(下标,元素)
字典:  字典[key]  =  值   、  字典.setdefault(key,值)
set: 集合.add(元素)
"""

5.删

"""
list:del 列表[下标]   列表.pop(下标)  列表.remove(元素)
dict:del 字典[key]  字典.pop(key)
set: 集合.remove(元素)
"""

6.改

"""
list:列表[下标]  = 新值
dict:字典[key] = 新值
"""

7.查

"""
str:查单个, 切片, 遍历
list:查单个, 切片, 遍历
tuple:查单个, 切片, 遍历
dict:查单个,遍历
set:遍历
"""

8.使用

"""
str:单独文字数据使用字符串(除了数字,和布尔表示的其他数据)
list:保存多个具有相同意义的数据
tuple:多个数据的值或者是顺序不能变的时候使用元祖(除了一些特殊意义的值,类似星期,其他一般不会选择用元祖来作为容器)
dict:同时保存多个数据需要去区分的时候
set:对其他容器中的数据去重,或者做数学集合运算的时候
"""

你可能感兴趣的:(day9-总结)