--此系列主要记录一些本人作为一个小白在python学习上遇到的一些重要知识点和易错点的总结,开坑,希望能够坚持到学有所成。
day06:数据容器04(集合)
一·定义格式以及特点
核心内容:
定义空集合: 集合名 = set() 注意: {}代表空字典
定义非空集合: 集合名 = {元素1 ,元素2 , ...}
# 1.定义空集合: 集合名 = set()
set1 = set()
print(set1, type(set1)) # set() <class 'set'>
# 注意: {}代表空字典
test = {}
print(test, type(test)) # {} <class 'dict'>
# 2.定义非空集合: 集合名 = {元素1 ,元素2 , ...}
name_set1 = {'张三', '李四', '王五', '赵六'}
print(name_set1)
# 注意:自带去重功能
name_set2 = {'张三', '李四', '张三', '赵六', '王五', '赵六'}
print(name_set2)
意义:作为存储多个元素的python类型容器的其中之一
特点:
是否可以混装: 可以容纳多个元素
是否有下标索引: 数据是无序存储的(无下标序号)
是否允许重复数据: 不允许重复数据存在
是否支持元素修改操作: 支持修改(增加或删除元素等)
二.集合的增删改查操作
查询/修改操作:
核心内容:
查询集合中元素的总个数: length = len(集合名)
两集合差集:集合名1.difference_update(集合名2)
两集合并集:集合名1.update(集合名2)
# 定义集合
set1 = {10, 20, 30}
set2 = {10, 60, 70}
print('原始set1内容:',set1)
print('原始set2内容:',set2)
# 更新set1集合内容为set1和set2的差集
# 相当于把difference差集结果覆盖了原来set1的内容
set1.difference_update(set2)
print(set1)
print(set2)
# 更新set1集合内容为set1和set2的并集
# 相当于把union合并后的结果覆盖了原来set1的内容
set1.update(set2)
print(set1)
print(set2)
# 查询set1最终的结果长度
print(len(set1))
增加/删除操作:
核心内容:
添加一个元素到集合: 集合名.add(元素)
随机删除集合内元素:集合名.pop()
删除集合内指定元素:集合名.remove(元素)
清空集合内元素:集合名.clear()
# 定义空集合
name_set = set()
print(name_set)
# 把'张三','李四','王五'依次添加到集合中
name_set.add('张三')
name_set.add('李四')
name_set.add('王五')
name_set.add('赵六')
name_set.add('周七')
print(name_set)
# 删除'张三'元素
name_set.remove('张三')
print(name_set)
# 随机删除一个元素
name_set.pop()
print(name_set)
# 清空集合
name_set.clear()
print(name_set)
三.集合的遍历
# 定义容器要求不能有重复元素
name_set = {'张三', '李四', '李四', '张三', '赵六', '王五'}
print(name_set)
# 遍历集合
for name in name_set:
# 直接打印元素
print(name)
"""
曲线救国方式使用while
注意集合不能使用while遍历,因为集合没有下标索引
但是列表,元组等有下标索引,可以转换为列表再用while遍历
"""
name_list = list(name_set)
print(name_list)
# 接下来就可以使用列表的while遍历
# 初始变量
index = 0
# 条件判断
while index < len(name_list):
# 循环体
name = name_list[index]
print(name)
# 条件控制
index += 1