学习目标:集合的概念,创建,增加元素,移除元素,运算(交集,并集,差集,对称差集),推导式
一.集合的概念:Python中的集合(set)是一种无序、无重复元素的数据结构,它的元素是不可变的(可哈希的)
- 集合是由大括号{}包围的元素集合
- 如果定义空集合,即不包含任何元素,必须使用set()函数定义
二.集合的创建
1.可以使用花括号 {} 或 set() 函数创建一个集合。
例如:
# 使用花括号创建集合
my_set = {1, 2, 3}
#使用set()函数创建集合
my_set = set([1, 2, 3])
三.添加元素,移除元素
1.使用add()方法添加元素
例如:
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) #{1, 2, 3, 4}
2.使用remove()方法移除元素
例如:
my_set = {1, 2, 3, 4}
my_set.remove(4)
print(my_set) #{1, 2, 3}
四.集合的运算
1.交集:是指两个或多个集合中共同存在的元素
例如:
my_set = {"a", "b", "c", "d"}
my_set_new = {"a", "e", "f", "g"}
print(my_set & my_set_new) #{'a'}
2.并集:是指将两个或多个集合中的所有元素合并在一起,形成一个新的集合。合并后的集合包含原始集合中的所有元素,并且不包含重复的元素
例如:
my_set = {"a", "b", "c", "d"}
my_set_new = {"a", "e", "f", "g"}
print(my_set | my_set_new) #{'d', 'f', 'e', 'g', 'b', 'a', 'c'}
3.差集:指的是两个集合之间的差异部分,即从一个集合中剔除另一个集合中所共有的元素后剩余的元素组成的集合
例如:
my_set = {"a", "b", "c", "d"}
my_set_new = {"a", "e", "f", "g"}
print(my_set - my_set_new) #{'b', 'c', 'd'}
4.对称差集:对称差集,又称为异或集,是指两个集合的元素中,只包含在其中一个集合中的元素构成的集合。
例如:
my_set = {"a", "b", "c", "d"}
my_set_new = {"a", "e", "f", "g"}
print(my_set ^ my_set_new) #{'d', 'c', 'e', 'f', 'b', 'g'}
五.推导式:集合推导式和列表推导式基本没有区别,但集合推导式可以去除重复元素,并且不是用"[]“,而是使用大口号”{}"
1.正常推导式
例如:
evens = {x for x in range(1, 11) if x % 2 == 0}
print(evens) # 输出:{2, 4, 6, 8, 10}
evens = {x**2 for x in range(1, 11) if x % 2 == 0}
print(evens) # 输出:{2, 4, 6, 8, 10}
2.去除列表里的重复元素
list_1 = [1,1,2,2,3,3,4,5]
unique_num ={i for i in list_1} #将列表元素循环,并在集合里去重元素
print(unique_num) #{1, 2, 3, 4, 5}
#再次生成列表
list_new =list(unique_num)
print(list_new)
#代码优化
list_new = list({i for i in list_1})
print(list_new)