10.Python基础数据类型之集合
2020-02-07 本文已影响0人
免跪姓黄
Python基础数据类型之集合
-
集合(set)
- 集合(set)是一个无序的、不重复元素序列,因此集合没有索引且没有重复的元素。集合是一个容器型的数据类型,他要求里面的元素是不可变的数据类型,但集合本身却是一个可变的数据类型。
-
集合的作用
遇到如下需求,应考虑使用集合
- 列表的去重。
- 关系测试。交集、并集、差集等。
-
集合的创建方式
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
-
方式一
set_creat = set({1, 2, '集合', False}) print(set_creat) # 输出结果:{False, 1, 2, '集合'}
-
方式二(直接创建)
set_creat = {1, 2, '集合', False} print(set_creat) # 输出结果:{'集合', 1, 2, False}
-
-
集合的增、删
-
增
-
方式一(内置函数add)
set_creat = {1, '集合', 'de', '增', '删'} set_creat.add('没有改') print(set_creat) # 输出结果:{1, '删', '没有改', '增', '集合', 'de'}
-
方式二(内置函数update迭代增加)
set_creat = {1, '集合', 'de', '增', '删'} set_creat.update('没有改') print(set_creat) # 输出结果:{'删', 1, 'de', '集合', '改', '增', '有', '没'}
-
-
删
-
方式一(内置函数remove按照元素删除)
set_creat = {1, '集合', 'de', '增', '删'} set_creat.remove('de') print(set_creat) # 输出结果:{1, '删', '增', '集合'}
-
方式二(内置函数pop随机删除)
set_creat = {1, '集合', 'de', '增', '删'} set_creat.pop() print(set_creat) # 输出结果:{'增', '集合', 'de', '删'}
-
-
虽然集合没有“改”,但可以变相改值,即先删后增
-
-
集合的关系操作
-
交集(使用&或intersection)
set_1 = {1, 3, 5, 2, 4, 6} set_2 = {2, 4, 6, 3, 5, 7} print(set_1 & set_2) # 输出结果:{2, 3, 4, 5, 6}
-
并集(使用|或union)
set_1 = {1, 3, 5, 2, 4, 6} set_2 = {2, 4, 6, 3, 5, 7} print(set_1 | set_2) # 输出结果:{1, 2, 3, 4, 5, 6, 7}
-
差集(使用-或difference)
set_1 = {1, 3, 5, 2, 4, 6} set_2 = {2, 4, 6, 3, 5, 7} print(set_1 - set_2) # 输出结果:{1}
-
反交集(使用^或symmetric_difference)
set_1 = {1, 3, 5, 2, 4, 6} set_2 = {2, 4, 6, 3, 5, 7} print(set_1 ^ set_2) # 输出结果:{1, 7}
-
子集(即:包含于,使用<)
set_1 = {1, 2, 3} set_2 = {1, 2, 3, 4, 5, 6} print(set_1 < set_2) # 输出结果:True
-
超集(即:包含,使用>)
set_1 = {1, 2, 3} set_2 = {1, 2, 3, 4, 5, 6} print(set_1 > set_2) # 输出结果:False
-
-
集合用于列表去重
-
使用集合对列表进行去重虽然简单,但由于集合是无序的,因此无法保证列表原来的顺序。
list_1 = [1, 1, 1, 2, 3, 3, 4, 4, 5, 6] set_1 = set(list_1) list_1 = list(set_1) print(list_1) # 输出结果:[1, 2, 3, 4, 5, 6]
-
-
集合的推导式
-
同列表和字典一样,集合也有推导式
s = {i for i in range(1,11)} print(s) # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
-