集合的定义:
语法:变量名称 = {元素,元素,元素.........元素}
定义空集合:
变量名称 = set()
set = {“abc”,123,“def”}
集合的特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据(混装)
- 数据是无序存储的(不支持下标索引)
- 不允许重复数据存在
- 可以修改(增加或删除元素等)
- 支持for循环
- 不支持while循环
集合的操作:
定义集合
my_set = {"张三", "李四", "王五", "张三", "李四", "王五", "张三", "李四", "王五", "张三", "李四", "王五"}
my_set_empty = set() # 定义空集合
print(f"my_set的内容是:{my_set},类型是:{type(my_set)}")
print(f"my_set_empty的内容是:{my_set_empty},类型是:{type(my_set_empty)}")
结果:
my_set的内容是:{'张三', '王五', '李四'},类型是:<class 'set'>
my_set_empty的内容是:set(),类型是:<class 'set'>
添加新元素add()
my_set = {"张三", "李四", "王五"}
my_set.add("赵六")
my_set.add("张三")
print(f"my_set添加元素后的结果是:{my_set}")
结果:
my_set添加元素后的结果是:{'张三', '赵六', '王五', '李四'}
移除元素remove()
my_set = {"张三", "李四", "王五"}
my_set.remove("王五")
print(f"my_set移除元素’王五‘后的结果是:{my_set}")
结果:
my_set移除元素’王五‘后的结果是:{'张三', '李四'}
随机取出一个元素pop()
my_set = {"张三", "李四", "王五"}
a = my_set.pop() # 随机取出
print(f"集合被取出元素是:{a},取出元素后:{my_set}")
结果:
集合被取出元素是:张三,取出元素后:{'王五', '李四'}
清空集合clear()
my_set = {"张三", "李四", "王五"}
a = my_set.clear() # 清空
print(f"集合被清空元素后:{my_set}")
结果:
集合被清空元素后:set()
取2个集合的差集 集合.difference(集合)
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.difference(set2) # 差集set1中有set2中没有存入set3
print(f"取出差集后的结果是:{set3}")
print(f"取出差集后,原有set1的内容是:{set1}")
print(f"取出差集后,原有set2的内容是:{set2}")
结果:
取出差集后的结果是:{2, 3}
取出差集后,原有set1的内容是:{1, 2, 3}
取出差集后,原有set2的内容是:{1, 5, 6}
消除2个集合的差集 集合.difference_update(集合)
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set1.difference_update(set2) # 消除set1中set2有的元素
print(f"消除差集后,set1的内容是:{set1}")
print(f"消除差集后,set2的内容是:{set2}")
结果:
消除差集后,set1的内容是:{2, 3}
消除差集后,set2的内容是:{1, 5, 6}
2个集合合并为一个 集合1.union(集合2)
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.union(set2) # 合并俩个结合去重
print(f"合并{set1},{set2}得到的集合是:{set3}")
print(f"合并后,set1的内容是:{set1}")
print(f"合并后,set2的内容是:{set2}")
结果:
合并{1, 2, 3},{1, 5, 6}得到的集合是:{1, 2, 3, 5, 6}
合并后,set1的内容是:{1, 2, 3}
合并后,set2的内容是:{1, 5, 6}
统计集合元素数量len()
set1 = {1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6}
num = len(set1)
print(f"集合:{set1}里边有:{num}个元素")
结果:
集合:{1, 2, 3, 4, 5, 6}里边有:6个元素
集合的遍历
# 集合不支持下标索引,不能用while循环
# 可以用for循环
set1 = {1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6}
for a in set1:
print(f"集合的元素有:{a}")
结果:
集合的元素有:1
集合的元素有:2
集合的元素有:3
集合的元素有:4
集合的元素有:5
集合的元素有:6
练习:
"""
有如下列表对象
my_list = ['黑马程序员', '传智播客', '黑马程序员', '传智播客', 'itheima', 'itcast', 'itheima', 'itcast']
要求:
.定义一个空集合
.通过for循环遍历列表
.在for循环中将列表的元素添加至集合
.最终得到元素去重后的集合对象,并打印输出
"""
# 定义数列
my_list = ['黑马程序员', '传智播客', '黑马程序员', '传智播客', 'itheima', 'itcast', 'itheima', 'itcast']
# 定义空集合
my_set = set()
for a in my_list:
my_set.add(a) # 将遍历出来的元素加入集合,集合自带去重功能
print(f"元素去重后的集合对象{my_set}")
结果:
元素去重后的集合对象{'黑马程序员', 'itcast', 'itheima', '传智播客'}