Python 元组、集合

107

元组

()
python内置的数据结构之一,是一个不可变序列

#不可变序列与可变序列

  • 不可变序列:字符串、元组
    不可变序列没有增、删、改的操作

  • 可变序列:列表、字典
    可变序列可以对序列执行增、删、改操作,对象地址不发生更改

#元组的创建方式

  • 直接使用小括号
t=('python','hello',98)
  • 使用内置函数tuple()
t1=tuple(('python','hello',98))
  • 只包含一个元组的元素需要使用逗号和小括号
t=(10, )
  • 空元组
t=()
t1=tuple()

#元组的遍历

  • 获取元组元素的方式,使用索引 t[n]
  • 元组是可迭代对象,所以可以使用for…in进行遍历
t=tuple(('Python',90))
for item in t:
	print(item)

集合

  • Python语言提供的内置数据结构
  • 与列表、字典一样都属于可变类型的序列
  • 集合是没有Value的字典

#集合的创建方式

  • 直接{ } ,集合不允许重复,自动去除重复元素
s={'python' ,'hello' ,98 }
  • 使用内置函数set()
    s=set(range(6))
    s2=set([1,2,3,4,5])
    s3=set((1,2,3,4,5))

  • 定义空集合

s=set()

#集合的相关操作

  • 集合元素的判断操作
    in或not in

  • 集合元素的新增操作
    调用add()方法,一次添加一个元素
    调用update()方法,至少添加一个元素

  • 集合元素的删除操作
    调用remove()方法,一次删除一个指定元素,如果指定元素不存在抛出KeyError
    调用discard()方法,一次删除一个指定元素,如果指定元素不存在不抛出异常
    调用pop()方法,一次只删除一个任意元素
    调用clear()方法,清空集合

#集合间的关系

  • 两个集合是否想等
    可以使用运算符==或者!=进行判断

  • 一个集合是否是另一个集合的子集
    可以调用方法issubset()进行判断

  • 一个集合是否是另一个集合的超集
    可以调用方法issuperset()进行判断

  • 两个集合是否没有交集
    可以调用方法isdisioint()进行判断

#集合的数学操作

  • 交集
    s1.intersection(s2)
    s1& s2

  • 并集
    s1.union(s2)
    s1| s2

  • 差集
    s1.difference(s2)
    s1- s2

  • 对称差集
    s1.symmetric_difference(s2)
    s1^ s2

#集合生成式

{i*i for i in range(1,10)}