6.1 集合类型及操作

六、组合数据类型

  • 6.1 集合类型及操作
  • 6.2 序列类型及操作
    • 元组类型、列表类型
  • 6.3 实例9:基本统计值计算
  • 6.4 字典类型及操作
  • 6.5 模块5:jieba库的使用
  • 6.6 实例10:文本词频统计

方法论

  • python三种主流组合数据类型的使用方法

实践能力

  • 学会编写处理一组数据的程序

6.1 集合类型及操作

单元开篇

  • 集合类型定义
  • 集合操作符
  • 集合处理方法
  • 集合类型应用场景

集合类型定义

集合是多个元素的无序组合

  • 集合类型与数学中的集合概念一致
  • 集合元素之间无序,每个元素唯一 ,不存在相同元素
  • 集合元素不可更改,不能是可变数据类型

集合用大括号{}表示,元素间用逗号分隔

  • 建立集合类型用{}或set()
  • 建立空集合类型,必须使用set()
A = {"python", 123, ("python", 123)}

>>> {('python', 123), 123, 'python'}
B = set("python123")

>>> {'1', 'y', 'o', '2', '3', 't', 'h', 'n', 'p'}
C {"python", 123, "python", 123}

>>> {'python', 123}

重点

  • 集合用大括号{} 表示,元素间用逗号分隔
  • 集合中每个元素唯一 ,不存在相同元素
  • 集合元素之间无序

集合操作符

![1580896281915](picture/6.1 集合类型及操

操作符及应用
描述
S | T 返回一个新集合,包括在集合S和T中的所有元素
S - T 返回一个新集合,包括在集合S但不在T中的元素
S & T 返回一个新集合,包括同时在集合S和T中的元素
S ^ T 返回一个新集合,包括集合S和T中的非相同元素
S <= T 或 S < T 返回Ture/False,判断S和T的子集关系
S >= T 或 S > T 返回Ture/False,判断S和T的包含关系

4个增强操作符

操作符及应用
描述
S |= T 更新集合S,包括在集合S和T中的所有元素
S -= T 更新集合S,包括在集合S但不在T中的元素
S &= T 更新集合S,包括同时在集合S和T中的元素
S ^= T 更新集合S,包括在集合S和T中非相同元素
A = {"p", "y", 123}
B = set("pypy123")

A - B
>>> {123}

B - A
>>> {'3', '2', '1'}

A & B
>>> {'p', 'y'}

A | B
>>> {'1', 'p', '2', 'y', '3', 123}

A ^ B
>>> {'2', 123, '1', '3'}

集合处理方法

操作函数或方法
描述
S.add(x) 如果x不在集合S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) 移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S一个元素并更新S,若S为空产生KeyError异常
S.copy() 返回集合S的一个副本
len(S) 返回集合S的元素个数
x in S 判断S中元素x,x在集合S中,返回True,否则返回False
x not in S 判断S中元素x,x不在集合S中,返回True,否则返回False
set(x) 将其他类型变量x转变为集合类型

遍历数组

A = {'p', 'y', 123}
for item in A:
    print(item, end = '')
    
>>> p123y
try:
    while True:
        print(A.pop(), end = '')
except:
    pass

>>> p123y

集合类型应用场景

"p" in {'p', 'y', 123}

>>> True

数据去重:集合类型所有元素无重复

ls = ['p', 'p', 'y', 'y', 123]
s = set(ls)     利用了集合无重复元素的特点
lt = list(s)    将集合转换为列表

单元小结

  • 集合使用{}和set()函数创建
  • 集合间操作:交(&)、并(|)、差(-)、补(^)、比较(>=<)
  • 集合类型方法:.add()、discard()、.pop()等
  • 集合类型主要应用于:包含关系比较、数据去重

你可能感兴趣的:(6.1 集合类型及操作)