Python 容器类型

一、列表和元组

          用来收纳数据对象的数据类型

          列表可以删除、添加、替换、重排序列中的元素(可变类型)

          元组是不能再更新(不可变)序列

                    注:元组在保留大多数功能的同时,去掉了一些灵活性以换取更高的处理性能

  • 创建列表  ————>  方括号法 [  ],指明类型法 list( )
  • 创建元素  ————>  圆括号法 ( ),指明类型法 tuple( )

列表或元组中保存的各个数据称作元素(element),类型没有限制


列表的操作:增长/缩减

1.增长列表
  • append操作:在列表末尾加入一个数据对象
  • insert操作:列表中间,指定插入部位
  • extend操作:将另一个列表接到原列表后面
2.缩减列表
  • pop操作:指定元素序号,提取移除
  • remove操作:指定并移除数据对象本身的值
  • clear操作:将列表清空为空列表

列表是一种可变容器,可以随意增减。

但并不是所有的数据容器都能像列表这样可以继续添加新元素


列表的操作:重新组织

  • reverse操作:把列表中的数据元素头尾反转重新排列
  • sort操作:把列表中的数据元素按照大小顺序重新排列
  • reversed/sorted 操作:得到重新排列的列表,而不影响原来的列表


列表和元组的操作:索引和切片

1.索引

alist[n]或atuple[n]

  • 可以用赋值语句给列表中的任何一个位置
  • 重新赋值但元组属于不可变类型,索引只能获取对应位置中的数据值,不可重新赋值
2.切片

alist[start :end :step] 或 atuple[start :end :step]

注:切片为左闭右开区间


列表和元组的操作:查找和计算

1.查找
  • in操作:判断某个元素是否存在于列表/元组中
  • index操作:指定的数据在列表/元组的哪个位置
  • count操作:指定的数据在列表/元组中出现过几次
2.计算
  • sum函数:将列表中所有的数据元素累加
  • min/max函数:返回列表中最小/最大的数据元素

二、字典

“标签收纳盒”

给数据贴上标签,就可以通过具有特定含义的名字或者别的记号来获取数据。
  • 通过标签(或者关键字)来索引数据,区别于列表或元组通过连续的整数来索引
标签(key)和数据值(value)
  • 字典容器中保存着一系列的key-value对
  • 通过键值key来索引元素value

字典是可变类型,可以添加、删除、替换元素

字典中的元素value没有顺序,可以是任意类型,甚至也可以是字典

字典的键值key可以是任意不可变类型(数值/字符串/元组)


1.创建一个字典

花括号法和指明类型法

student ={}
student = dict()

数据项(item)
  • 字典中保存的各个标签-数据值(key-value)
  • 标签和数据值之间用冒号“:”连接
批量添加数据项

formkeys中包含一个序列(列表或元组)

例:student = dict.fromkeys((“name”,“age”))

如果不加参数,标签的值默认赋值为none 


2.更新一个字典

合并字典
  • update方法
增长字典
  • “关联”操作
  • update操作:以key=value的形式批量添加数据项
缩减字典
  • del操作:删除指定标签的数据项
  • pop操作:删除指定标签的数据项并返回数据值
  • popitem操作:删除并返回任意一个数据项,可以用来对字典进行遍历的操作,逐项处理
  • clear操作:清空字典 
字典大小
  • len函数:返回字典中包含的key-value对的数量

3.访问字典的数据项

标签索引

dict[key]

  • 获取字典中指定标签的数据值
  • 更新指定标签的数据项
student ={"name":"Tom""age":20,"gender":"male"}
student["age"] = 24 
获取字典的标签、数据值和数据项
  • keys函数:返回字典中的所有标签
  • values函数:返回字典中的所有数据值
  • items函数:将每个数据项表示为二元元组,返回所有的数据项

4.在字典中查找

  • in操作:判断字典中是否存在某个标签(判断key)
  • in操作和values函数的组合:判断字典中是否存在某个数据值(判断values)

三、集合

“标签带”

通过改造字典类型,去掉关联数据值,只留下标签的新容器类型

集合是不重复元素的无序组合


1.创建一个集合

创建集合:{ }或者set( )

  • 用set()创建空集
  • 可用set()从其它序列转换生成集合
集合会自动忽略重复的数据
集合中不能加入可变类型数据

2.更新一个集合

增长集合
  • add操作:添加一个数据
  • update操作:批量添加数据
缩减集合
  • remove/discard操作:删除指定数据

remove在删除到不存在的数据是会报错,而discard不会报错

  • pop操作:删除任意数据并返回值
  • clear操作:清空集合
集合大小
  • len函数:查看集合中包含的元素多少

3.访问集合中的元素

  • in操作:判断元素是否属于集合
  • pop操作:删除数据元素的同时,返回它的值

       注:取遍所有数据元素之后,集合成为一个空集;

              可以用copy操作先给集合制作一个“替身“”

  • 迭代循环:可以取遍集合中的每一个元素且不挪走任何一个元素

4.集合运算

  • 生成新集合运算

  • 关系判定

        <=,<,=>,>:子集/真子集/超集/真超集

  • 交集

        isdisjoint():两集合交集是否为空(返回true交集为空,返回false交集有元素)

5.集合作用

  • 快速去除重复的数据项
  • 判断元素是否在一组数据中,如果这些数据的次序不重要,使用集合可以获得比列表更好的性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值