1. 集合类型

1.1 集合定义

多个元素的无序组合
创建方式: {}set()
建立空集合类型,必须使用 set() ,因为空大括号 {} 默认创建字典类型
特点:

  • 集合元素之间无序,每个元素唯一,不存在相同元素
  • 集合元素不可更改,不能改变数据类型
  • 集合用大括号{}表示,元素间用逗号 , 分隔 ```python 1.使用 {} 建立集合

    A={“python”,123,(“python”,123)} A {‘python’, (‘python’, 123), 123}

2.使用set() 建立集合

B=set(‘pypy123’) B {‘1’, ‘p’, ‘3’, ‘y’, ‘2’} ```

1.2 集合操作符

  1. 集合间的操作

image.png

操作符 描述
S | T 并,返回一个新集合,包括在集合S和T中的所有元素
S - T 差,返回一个新集合,包括在集合S但不在T中的元素
S & T 交,返回一个新集合,仅包括同时在集合S和T中的元素
S <= T 或 S < T 返回True/False , 判断S是否是T的子集
S >=T 或 S > T 返回True/False,判断S是否包含T
增强操作符 描述
S |= T 并,更新集合S,包括在集合S和T中的所有元素
S -= T 差,更新集合S,包括在集合S但不在T中的元素
S &= T 交,更新集合S,包括同时在S和T中的元素
S ^= T 补,更新集合S,包括集合S和T中的非相同元素

示例
image.png

1.3 集合处理 ‘方法’

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

1.4 集合应用场景

  1. 包含关系比较

    1. >>> 'p' in {'p','y',123}
    2. True
    3. >>> {'p','y'} >={'p','y',123}
    4. False
  2. 数据去重

    1. >>> ls = ['p','p','y','y',123]
    2. >>> s=set(ls) #将列表转变为集合,利用集合无重复元素的特点
    3. >>> s
    4. {'y', 123, 'p'}
    5. >>> lt=list(s) #去重后的数据重新转换为列表
    6. >>> lt
    7. ['y', 123, 'p']

2. 序列类型

序列是一个基类类型,扩展类型有:字符串类型,元组类型,列表类型
定义:序列类型是具有先后关系的一组元素,是一维元素向量,元素类型可以不同; 元素间由序号引导,通过下标访问特定元素。
image.png

序列处理

6个操作符

操作符 描述
x in s 如果x是序列s的元素,返回True,否则返回False
x not in s 如果x是序列s的元素,返回False,否则返回True
s + t 连接两个序列s 和 t
s n 或 n s 将序列s复制n次
s[i] 索引,返回s中的第i个元素,i是序号,从0开始
s[i:j:k] 切片,返回序列s中第 i 开始,不到 j 的元素,以 k 为步长

5个函数和’方法’

函数和方法 描述
len(s) 返回序列s的长度,即元素个数
min(s) 返回序列s的最小值,s中元素需要可比较
max(s) 返回序列s中的最大元素,s中元素需要可比较
s.index(x)
或 s.index(x,i,j)
返回序列s从i开始到j位置中第一次出现元素x的位置
s.count(x) 返回序列s中x出现的总次数

1). 元组类型

1.1 元组定义

  • 使用小括号 ()tuple() 创建,元素间用逗号分隔
  • 可以使用或不适用小括号
  • 元组是一种序列类型,一旦创建就不能被修改 ```python

    示例:

    create = “cat”,’dog’,’tiger’,’human’ create (‘cat’, ‘dog’, ‘tiger’, ‘human’)

color = (0x001100,’blue’,create) color (4352, ‘blue’, (‘cat’, ‘dog’, ‘tiger’, ‘human’)) ```

1.2元组操作

  • 元组继承了序列类型的全部 通用操作
  • 由于元组创建后不能修改,因此没有特殊操作

2). 列表类型

2.1 列表定义

  • 列表创建方式:使用方括号 []list() 创建,元素间用逗号分隔
  • 列表是一种序列类型,创建后可以随意被修改
  • 列表中元素类型可以不同,无长度限制

    2.2 操作函数和方法

    操作符

    | 操作符 | 描述 | | —- | —- | | ls[i] = x | 赋值,替换列表ls第i个元素为x | | ls[i:j:k] = lt | 用列表lt替换ls切片后所对应元素子列表 | | del ls[i] | 删除列表ls中第i个元素 | | del ls[i:j:k] | 删除列表ls中切片取出的子列表元素 | | ls += lt | 更新列表ls,将lt元素增加到列表ls中 | | ls *= n | 更新列表ls,将其元素重复n次 |

函数/方法

函数/方法 描述
ls.append(x) 在列表最后增加一个元素x
ls.clear() 删除列表ls中所有元素
ls.copy() 生成一个新列表,赋值ls中所有元素
ls.insert(i,x) 在列表ls的第 i 位置增加元素 x
ls.pop(i) 将列表ls中第 i 位置元素取出并从列表中删除
ls.remove(x) 将列表ls中出现的第一个元素x删除
ls.reverse() 将列表ls中的元素反转

3. 字典类型

3.1 字典定义

创建方式:采用大括号 {}dict() 创建,键值对用冒号 : 表示

  • 字典类型是’映射’的体现,是键值对的集合,键值对之间无序
  • 键值对:键是数据索引的扩展

5- 组合数据类型 - 图4

3.2 字典类型用法

  1. <字典变量> = {<键1>:<值1>,...,<键n><值n>}
  2. <值> = <字典变量>[<键>]
  3. <字典变量>[<键>] = <值>
  4. #[] 用来向字典变量中索引或增加元素
  5. 例如:
  6. >>> sw1 = {
  7. 'hostname':'sw1',
  8. 'ip':'192.168.11.11',
  9. 'username':'admin',
  10. 'password':'admin123'
  11. }
  12. >>> sw1['ip']
  13. '192.168.11.11'
  14. >>> sw1['host'] = 'www.dz11.com'
  15. >>> sw1
  16. {'hostname': 'sw1', 'ip': '192.168.11.11', 'username': 'admin', 'password': 'admin123', 'host': 'www.dz11.com'}

函数/方法

查看

函数/方法 描述
del d[k] 删除字典d中键k对应的数据值
k in d 判断键k是否在字典d中,如果在返回True,否则返回False
d.keys() 返回字典d中所有的键信息
d.valuers() 返回字典d中所有的值信息
d.items() 返回字典d中所有的键值对信息

应用

函数/方法 描述
d.get(k,) 键k存在,则返回相应值,不存在则返回default值
d.pop(k,) 键k存在,则取出相应值(取出后会从字典中删除),不存在则返回default值
d.popietm() 随机从字典中取出一个键值对,以元组形式返回
d.clear() 删除所有的键值对
len(d) 返回字典d中元素的个数
  1. #示例
  2. >>> d={'中国':'beijing','美国':'niuyue','法国':'bali'}
  3. >>> d.get('中国')
  4. 'beijing'
  5. >>> d
  6. {'中国': 'beijing', '美国': 'niuyue', '法国': 'bali'}
  7. >>> d.pop('英国','不存在')
  8. '不存在'
  9. >>> d.pop('法国','不存在')
  10. 'bali'
  11. >>> d
  12. {'中国': 'beijing', '美国': 'niuyue'}