主页 > 游戏开发  > 

python数据容器

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的存储场景 容器通用功能

标签:

python数据容器由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python数据容器