Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之集合类型(set)

时间:2021-11-11 14:14:50

  集合!Python中的集合数据基本上是为了方便数学计算使用的。

  什么是集合?

  集合就是“确定的一堆东西”。集合里面的东西叫做元素。

  特点:1. 集合里面是没有重复的元素的。

             2. 集合的创建也是通过( )的方式进行创建,里面可以是字符串的形式,也可以是列表等其他形式。

        3. 集合和字典一样也是没有顺序的概念。

                  4. 集合每次显示结果的顺序都是随机的!

  分类:在Python中对于集合分可变集合也就是最常用的set,还有一种叫frozenset(冻结集合)有不可编辑的性质。最主要的还是set集合,他们有一些区别。

  区别:1. set:无序排列且不重复,不存在哈希值,元素是可变的,有add()、remove()等方法。

      frozenset:是不可变的,存在哈希值,好处是他可以作为字典的key,也可以作为其他集合的元素。但是一旦创建没有add()、remove()等方法。

     2. set:基本功能包括关系测试和消除重复元素,集合对象还支持union(联合、并集)、intersection(交集)、difference(差集)和sysmmetric difference(对称差集)等数学运算。

1.   集合的简单应用

1.1   创建集合

  语法:集合名 = set ("元素1", "元素2", "元素n")

  创建一个空集合和带有元素的集合

 # 创建集合 #
set0 = set()
set1 = set("boyaaaaa") # 字符串按照单个元素进行拆分
set2 = set(["y", "b", "o"]) # 也可以额用列表方式进行创建
set3 = set([1, 2, 3])
set4 = set([123,])
print(set0)
print(type(set0))
print(set1)
print(set2)
print(type(set2))
print(set3)
print(set4)
# 输出结果:
# set()
# <class 'set'>
# {'y', 'a', 'o', 'b'} # 注意一下,这里集合的显示结果是用花括号列出的
# {'b', 'o', 'y'} # 注意一下,这里集合的显示结果是用花括号列出的
# <class 'set'> # 注意一下,这里集合的显示结果是用花括号列出的
# {1, 2, 3} # 注意一下,这里集合的显示结果是用花括号列出的
# {123} # 注意一下,这里集合的显示结果是用花括号列出的

1.2   集合的常规操作

  有一个函数没见过,列出一下:

  函:set.add

    语:set.add("元素")

      用:把元素添加到set集合里面

 # 集合添加、删除 #
# 添加
a = set("set")
a.add("python") # 任意位置添加
print(a)
# 输出结果:
# {'s', 'e', 'python', 't'} b = set("boy")
b.update("python") # 按照字符串的字符进行打散添加
print(b)
# 输出结果:
# {'y', 'p', 'h', 'b', 'o', 'n', 't'} # 删除
c = set(["y", "python", "b", "o"])
c.remove("python")
print(c)
# 输出结果:{'o', 'b', 'y'}

2.   集合的数学运算

  集合的数学运算主要包括:

  - 差集、相对补集运算,谁相对于谁没有的元素

  & 并集;两个集合当中相同的元素,或者函数union(s)

  | 合集;a和b两个集合进行组合

  != 不等于;判断两个集合的元素是否相等,如果不相等返回为True,否则为False

  == 相等;判断两个集合的元素是否相等,如果相等返回为True,否则为True

  in 包含;判断集合a是否包含在集合b当中,如果包含返回为Ture,否则为False

  not in 不包含;判断集合a是否不包含在集合b当中,如果不包含返回为True,否则为False

 # 集合的数学运算 #
a = set("abc")
b = set("cdef")
# - 差集、相对补集运算,谁相对于谁没有的元素
print(a - b, b - a) # 输出结果:{'b', 'a'} {'d', 'f', 'e'} # & 并集;两个集合当中相同的元素
print(a & b) # 输出结果:{'c'} # | 合集;a和b两个集合进行组合
print(a | b) # 输出结果:{'b', 'e', 'c', 'a', 'd', 'f'} # != 不等于;判断两个集合的元素是否相等,如果不相等返回为True,否则为False
print(a != b) # 输出结果:True # == 相等;判断两个集合的元素是否相等,如果相等返回为True,否则为True
print(a == b) # 输出结果:False # in 包含;判断集合a是否包含在集合b当中,如果包含返回为Ture,否则为False
print(a in b) # 输出结果:False # not in 不包含;判断集合a是否不包含在集合b当中,如果不包含返回为True,否则为False
print(a not in b) # 输出结果:True

2. 补充说明

  除了常用的这些数据类型,还如布尔型等参照其他资料即可,非常简单