基本数据类型 : set
集合(set)特点 :
- 无序
- 不能重复(自动去重)
- 用 {} 或 set()函数 来表示集合
- 空集合 : set()
1 name = {"江户部柯南","基德","灰原哀","工藤新一"}
2 name1 = set(["江户部柯南","基德","灰原哀","工藤新一"])
3 print(type(name),type(name1)) 运行结果 :
<class 'set'> <class 'set'>
1.1 新增
- set.add("m") 将元素m添加到集合末尾(无返回值)
- set.update("m") 将元素m逐个字符插入到集合中(无返回值)
### 新增集合 add() update() 1 name = {"江户部柯南","基德","灰原哀","工藤新一"}
2 name.add("服部平次") ### 添加元素“服部平次”
3 print(name)
4
5 a = name.update("服部平次") ### 将“服部平次”逐个插入到集合中
6 print(a,name)
1.2 删除
- set.remove("e") 根据元素名删除
- set.pop() 随机删除一个元素
- del 列表名 删除整个集合
- set.clear() 清空集合中的所有元素
### 删除集合 remove() pop() del clear() 1 name = {"江户部柯南","基德","灰原哀","工藤新一"}
### 删除元素“基德”
3 name.remove("基德")
4 print(name)
### 随机删除一个元素
6 name.pop()
7 print(name)
### 将集合name删除
9 del name
10 print(name)
### 清空集合中的元素
12 name.clear()
13 print(name)
1.3 去重、求交集、差集、并集、超集
- set() 可用于字符串、列表、集合去除重复的元素
1 name_set = {"江户部柯南","基德","灰原哀","江户部柯南","工藤新一"}
2 name_list = ["江户部柯南","基德","灰原哀","江户部柯南","工藤新一"]
### 去除重复的元素
4 print(set(name_set))
5 print(set(name_list)) 运行结果:
{'灰原哀', '江户部柯南', '基德', '工藤新一'}
{'灰原哀', '江户部柯南', '基德', '工藤新一'}
- & / 集合名1.intersection(集合名2) : 求两个集合的交集
### 求交集 & 、 set.intersection(set2)
1 set1 = {1,2,3,4}
2 set2 = {3,4,5,6}
# 法一:
4 print(set1 & set2)
# 法二:
6 print(set1.intersection(set2)) 运行结果:
{3, 4}
{3, 4}
- ^ / 集合名1.symmetric_difference(集合名2) : 求两个集合的反交集
### 求反交集 ^ 、 集合名1.symmetric_difference(集合名2) 1 set1 = {1,2,3,4,5}
2 set2 = {4,5,6,7,8}
# 法一:
4 print(set1 ^ set2)
# 法二:
6 print(set1.symmetric_difference(set2)) 运行结果:
{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}
- - / 集合名1.difference(集合名2) : 求两个集合的差集
### 求差集 集合1 - 集合2 / 集合名1.difference(集合名2)
1 set1 = {1,2,3,4,5}
2 set2 = {4,5,6,7,8}
# 法一
4 print(set1 - set2)
5 print(set2 - set1)
# 法二
7 print(set1.difference(set2))
8 print(set2.difference(set1)) 运行结果:
{1, 2, 3}
{8, 6, 7}
{1, 2, 3}
{8, 6, 7}
- | / 集合名1.union(集合名2) 求两个集合的并集
### 集合名1 | 集合名2 、 集合名1.union(集合名2) 1 set1 = {1,2,3,4,5}
2 set2 = {4,5,6,7,8}
# 法一
4 print(set1 | set2)
# 法二
6 print(set1.union(set2))
- 集合1.issubset(集合2) 判断集合1是否为集合2的子集
- 集合1.issuperset(集合2) 判断集合1是否为集合2的超集
1 set1 = {1,2,3}
2 set2 = {1,2,3,4,5,6}
3 print(set1 < set2)
4 print(set1.issubset(set2)) #子集
5 print(set1.issuperset(set2)) #超集
可变数据类型 :list[] 、dict{}
不可变数据类型 : int 、 str 、 tuple()