欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > python数据容器

python数据容器

2025/2/25 17:43:23 来源:https://blog.csdn.net/SO_zxn/article/details/145756382  浏览:    关键词:python数据容器

文章目录

  • 定义
    • 注意
  • 列表
    • 语法
    • 案例
    • 列表的下表索引
      • 注意
      • 案例
    • 列表的方法
      • 查询
      • 修改
      • 插入
      • 追加一个元素
      • 追加多个元素
      • 删除
      • 删除某元素在列表中的第一个匹配项
      • 清空列表内容
      • 统计某元素在列表内的数量
      • 统计列表内,有多少元素
      • 列表方法汇总
      • 特点
      • 双重遍历案例
  • 元组
    • 概要
    • 语法
    • 元组的方法
      • 注意
    • 元组特点
  • 字符串
    • 概要
    • 字符串常用方法
      • 替换
      • 字符串的分割
      • 字符串的规整操作(去前后空格)
      • 字符串的规整操作(去前后指定字符串)
      • 统计字符串中某字符串的出现次数
      • 统计字符串的长度
      • 方法汇总
    • 特点
  • 容器序列切片
    • 概要
    • 语法
    • 案例
  • 集合
    • 概要
    • 语法
    • 常见方法
      • 添加新元素
      • 移除元素
      • 从集合中随机取出元素
      • 清空集合
      • 取出2个集合的差集
      • 消除2个集合的差集
      • 2个集合合并
      • 查看集合的元素数量
    • 方法汇总
    • 特点
  • 字典
    • 定义
    • 语法
    • 字典的嵌套
    • 常用方法
      • 获取
      • 新增元素
      • 更新元素
      • 删除元素
      • 清空字典
      • 获取全部的key
      • 遍历字典
      • 计算字典内的全部元素(键值对)数量
    • 方法汇总
    • 特点
  • 容器对比
    • 分类
    • 对比
    • 应用场景
    • 容器通用功能

定义

一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。

注意

数据容器内可以存放不同的数据类型。这点和java是有差别的
容器内可以嵌套容器

数据容器根据特点的不同,如:

  • 是否支持重复元素
  • 是否可以修改
  • 是否有序,等

分为5类,分别是:列表(1ist)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

列表

语法

在这里插入图片描述

案例

在这里插入图片描述

列表的下表索引

列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增。或者,可以反向索引,也就是从后向前:从-1开始,依次递减。如果列表是嵌套的列表,同样支持下标索引。

注意

这里倒序的时候与java的不同,java中下标是固定的,倒序遍历时还是以原来的下标获取。

案例

在这里插入图片描述

列表的方法

函数是一个封装的代码单元,可以提供特定功能。
在Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法

查询

查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:列表.index(元素)

index就是列表对象(变量)内置的方法(函数)

案例:

在这里插入图片描述

修改

修改特定位置(索引)的元素值

语法:列表[下标]=值

可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

案例:
在这里插入图片描述

插入

语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

案例:

在这里插入图片描述

追加一个元素

语法:列表.append(元素),将指定元素,追加到列表的尾部

案例:

在这里插入图片描述

追加多个元素

语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部

案例:

在这里插入图片描述

删除

语法1:del 列表[下标]
语法2:列表.pop(下标)

案例:

在这里插入图片描述

在这里插入图片描述

删除某元素在列表中的第一个匹配项

语法:列表.remove(元素)

在这里插入图片描述

清空列表内容

语法:列表.clear()

在这里插入图片描述

统计某元素在列表内的数量

语法:列表.count(元素)

在这里插入图片描述

统计列表内,有多少元素

语法:len(列表)
可以得到一个int数字,表示列表内的元素数量

在这里插入图片描述

列表方法汇总

在这里插入图片描述

特点

  • 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
  • 可以容纳不同类型的元素(混装)
  • 数据是有序存储的(有下标序号)
  • 允许重复数据存在
  • 可以修改(增加或删除元素等)

除了点2点其他的和java中数组列表一样

双重遍历案例

在这里插入图片描述

元组

概要

元组同列表一样,都是可以封装多个、不同类型的元素在内,但最大的不同点在于:元组一旦定义完成,就不可修改。所以,当我们需要在程序内封装数据,又不希望封装的数据被复改,那么元组就非常合适了。

语法

元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型

在这里插入图片描述

在这里插入图片描述

注意:元组只有一个数据,这个数据后面要添加逗号

元组的方法

在这里插入图片描述

元组由于不可修改的原因,所以方法很少。

案例:

在这里插入图片描述

注意

  • 不可以修改元组的内容,否则会直接报错
  • 可以修改元组内的ist的内容(修改元素、增加、删除、反转等)
  • 不可以替换list为其它list或其它类型

元组特点

  • 可以容纳多个数据
  • 可以容纳不同类型的数据(混装)
  • 数据是有序存储的(下标索引)
  • 允许重复数据存在
  • 不可以修改(增加或删除元素等)
  • 支持for循环

字符串

概要

字符串是字符的容器,一个字符串可以存放任意数量的字符。

和其它容器如:列表、元组一样,字符串也可以通过下标进行访问:

  • 从前向后,下标从0开始
  • 从后向前,下标从-1开始

同元组一样,字符串是一个:无法修改的数据容器。所以对字符串进行修改、移除、追加均无法完成。如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改。这点和java字符串是一样的,都不能修改。

字符串常用方法

替换

语法:字符串.replace(字符串1,字符串2)
功能:将字符串内的全部:字符串1,替换为字符串2
注意:不是修改字符串本身,而是得到了一个新字符串

在这里插入图片描述

字符串的分割

语法:字符串.split(分隔符字符串)
功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
注意:字符串本身不变,而是得到了一个列表对象

在这里插入图片描述

字符串的规整操作(去前后空格)

语法:字符串.strip()

在这里插入图片描述

字符串的规整操作(去前后指定字符串)

语法:字符串.strip(字符串)

在这里插入图片描述

统计字符串中某字符串的出现次数

语法:字符串.count(字符串)

在这里插入图片描述

统计字符串的长度

语法:len(字符串)

在这里插入图片描述

方法汇总

在这里插入图片描述

特点

  • 只可以存储字符串
  • 长度任意(取决于内存大小)
  • 支持下标索引
  • 允许重复字符串存在
  • 不可以修改(增加或删除元素等)
  • 支持for循环

基本和列表、元组相同;
不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型;
不同于列表,相同于元组的在于:字符串不可修改。

容器序列切片

概要

序列是指:内容连续、有序,可使用下标索引的一类数据容器。列表、元组、字符串,均可以可以视为序列

序列支持切片,即:列表、元组、字符串,均支持进行切片操作
切片:从一个序列中,取出一个子序列

语法

语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:

  • 起始下标表示从何处开始,可以留空,留空视作从头开始
  • 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
  • 步长表示,依次取元素的间隔

步长1表示,一个个取元素
步长2表示,每次跳过1个元素取
步长N表示,每次跳过N-1个元素取
步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

注意:
此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)

案例

在这里插入图片描述

集合

概要

集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序

语法

1、定义集合字面量
{元素,元素,元素}
2、定义集合变量
变量名称={元素,元素,元素}
3、定义空集合
变量名称=set()

常见方法

添加新元素

语法:集合.add(元素)。将指定元素,添加到集合内
结果:集合本身被修改,添加了新元素

在这里插入图片描述

移除元素

语法:集合.remove(元素),将指定元素,从集合内移除
结果:集合本身被修改,移除了元素

在这里插入图片描述

从集合中随机取出元素

语法:集合.popO,功能,从集合中随机取出一个元素
结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

在这里插入图片描述

清空集合

语法:集合.clear0,功能,清空集合
结果:集合本身被清空

在这里插入图片描述

取出2个集合的差集

语法:集合1.difference(集合2),
功能:取出集合1和集合2的差集(集合1有而集合2没有的)
结果:得到一个新集合,集合1和集合2不变

在这里插入图片描述

消除2个集合的差集

语法:集合1.difference_update(集合2)
功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。
结果:集合1被修改,集合2不变

在这里插入图片描述

2个集合合并

语法:集合1.union(集合2)
功能:将集合1和集合2组合成新集合
结果:得到新集合,集合1和集合2不变

在这里插入图片描述

查看集合的元素数量

语法:len(集合)
功能:统计集合内有多少元素
结果:得到一个整数结果

在这里插入图片描述

方法汇总

在这里插入图片描述

特点

  • 可以容纳多个数据
  • 可以容纳不同类型的数据(混装)
  • 数据是无序存储的(不支持下标素引)
  • 不允许重复数据存在
  • 可以修改(增加或删除元素等)
  • 支持for循环

字典

定义

字典的定义,同样使用{},不过存储的元素是一个个的:键值对。

语法

1、定义字典字面量
{key:value , key:value , … ,key:value}

2、定义字典变量
my_dict = {key: value , key: value , … , key:value}

3、定义空字典
my_dict={} #空字典定义方式1
my_dict= dict() #空字典定义方式2

  • 使用{}存储元素,每一个元素是一个键值对
  • 每一个键值对包含Key和Value(用冒号分隔)
  • 键值对之间使用逗号分隔
  • Key和value可以是任意类型的数据(key不可为字典)
  • Key不可重复,重复会对原有数据覆盖

在这里插入图片描述

字典的嵌套

字典的Key和Value可以是任意数据类型(Key不可为字典)。那么,就表明,字典是可以嵌套的

常用方法

获取

字典同集合一样,不可以使用下标索引。但是字典可以通过Key值来取得对应的Value

在这里插入图片描述

新增元素

语法:字典[Key]=Value,结果:字典被修改,新增了元素

在这里插入图片描述

更新元素

语法:字典[Key]=Value,结果:字典被修改,元素被更新
注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值

在这里插入图片描述

删除元素

语法:字典.pop(Key),
结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除

在这里插入图片描述

清空字典

语法:字典.clear(),结果:字典被修改,元素被清空

在这里插入图片描述

获取全部的key

语法:字典.keys(),结果:得到字典中的全部Key

在这里插入图片描述

遍历字典

语法:for key in字典.keys()

在这里插入图片描述

计算字典内的全部元素(键值对)数量

语法:len(字典)
结果:得到一个整数,表示字典内元素(键值对)的数量

在这里插入图片描述

方法汇总

在这里插入图片描述

特点

  • 可以容纳多个数据
  • 可以容纳不同类型的数据
  • 每一份数据是Key-Value键值对
  • 可以通过Key获取到Value,Key不可重复(重复会覆盖)
  • 不支持下标索引
  • 可以修改(增加或删除更新元素等)
  • 支持for循环,不支持while循环

容器对比

分类

  • 是否支持下标索引

支持:列表、元组、字符串-序列类型
不支持:集合、字典-非序列类型

  • 是否支持重复元素:

支持:列表、元组、字符串-序列类型
不支持:集合、字典-非序列类型

  • 是否可以修改

支持:列表、集合、字典
不支持:元组、字符串

对比

在这里插入图片描述

应用场景

  • 列表:一批数据,可修改、可重复的存储场景
  • 元组:一批数据,不可修改、可重复的存储场景
  • 字符串:一串字符串的存储场景
  • 集合:一批数据,去重存储场景
  • 字典:一批数据,可用Key检索Value的存储场景

容器通用功能

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com