Python-数据容器
定义
Python中的数据容器:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
数据容器根据特点的不同,如:
(1)是否支持重复元素
(2)是否可以修改
(3)是否有序,等
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
列表
基本语法:
#字面量 [元素1,元素2,元素3,元素4,...] #定义变量 变量名称=[元素1,元素2,元素3,元素4,...] #定义空列表 变量名称=[] 变量名称 = list()列表内的每一个数据,称之为元素,以[]作为标识,列表内每一个元素之间用,逗号隔开。
列表索引
列表的每一个元素都有编号称之为下标索引
(1)从前向后的方向,编号从0开始递增
(2)从后向前的方向,编号从-1开始递减
列表的方法
| 编号 | 使用方式 | 作用 |
| 1 | 列表append(元素) | 向列表中追加一个元素 |
| 2 | 列表.extend(容器) | 将数据容器的内容依次取出,追加到列表尾部 |
| 3 | 列表.insert(下标,元素) | 在指定下标处,插入指定的元素 |
| 4 | del列表[下标] | 删除列表指定下标元素 |
| 5 | 列表.pop(下标) | 删除列表指定下标元素 |
| 6 | 列表.remove(元素) | 从前向后,删除此元素第一个匹配项 |
| 7 | 列表.clear() | 清空列表 |
| 8 | 列表.count(元素) | 统计此元素在列表中出现的次数 |
| 9 | 列表.index(元素) | 查找指定元素在列表的下标,找不到报错ValueError |
| 10 | len(列表) | 统计容器内有多少元素 |
列表的特点
列表有如下特点:
(1)可以容纳多个元素(上限为2**63-1、9223372036854775807个)
(2)可以容纳不同类型的元素(混装)
(3)数据是有序存储的(有下标序号)
(4)允许重复数据存在
(5)可以修改(增加或删除元素等)
元组
元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
#定义元组字面量 (元素, 元素, ......, 元素) #定义元组变量 变量名称=(元素, 元素, ......, 元素). #定义空元组 变量名称=() 变量名称=tuple()元组的相关操作
| 编号 | 方法 | 作用 |
| 1 | index() | 查找某个数据,如果数据存在返回对应的下标,否则报错 |
| 2 | count() | 统计某个数据在当前元组出现的次数 |
| 3 | len(元组) | 统计元组内的元素个数 |
字符串容器
字符串同样也是数据容器的一员,字符串是字符的容器,一个字符串可以存放任意数量的字符。如,字符串:"Hello World”。
和其它容器如:列表、元组一样,字符串也可以通过下标进行访问
从前向后,下标从0开始
从后向前,下标从-1开始
字符串的替换
语法:字符串.replace(字符串1,字符串2)
功能:将字符串内的全部:字符串1,替换为学符串2
注意:不是修改字符串本身,而是得到了一个新字符串哦
字符串的分割
语法:字符串.split(分隔符字符串)
功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
注意:字符串本身不变,而是得到了一个列表对象
字符串常用操作汇总
| 编号 | 操作 | 说明 |
| 1 | 字符串[下标] | 根据下标索引取出特定位置字符 |
| 2 | 字符串.index(字符串) | 查找给定字符的第一个匹配项的下标: |
| 3 | 字符串.replace(字符串1,字符串2) | 将字符串内的全部字符串1,替换为字符串2不会修改原字符串,而是得到一个新的字符串 |
| 4 | 字符串.split(字符串) | 按照给定字符串,对字符串进行分隔不会修改原字符串,而是得到一个新的列表 |
| 5 | 字符串.strip() 字符串.strip(字符串) | 移除首尾的空格和换行符或指定字符串 |
| 6 | 字符串.count(字符串) | 统计字符串内某字符串的出现次数: |
| 7 | len(字符串) | 统计字符串的字符个数 |
作为数据容器,字符串有如下特点:
(1)只可以存储字符串
(2)长度任意 (取决于内存大小)
(3)支持下标索引
(4)允许重复字符串存在
(5)不可以修改(增加或删除元素等)
(6)支持for循环
序列
序列是指:内容连续、有序,可使用下标索引的一类数据容器列表、元组、字符串,均可以可以视为序列。
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
(1)起始下标表示从何处开始,可以留空,留空视作从头开始
(2)结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
(3)步长表示,依次取元素的间隔
①步长1表示,一个个取元素
②步长2表示,每次跳过1个元素取
③步长N表示,每次跳过N-1个元素取
④步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
注意,此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、享符串)
集合
基本语法:
#定义集合字面量 {元素, 元素, ......, 元素} #定义集合变量 变量名称={元素, 元素, ......, 元素} #定义空集合 变量名称=set()首先,因为集合是无序的,所以集合不支持:下标索引访问,但是集合和列表一样,是允许修改的,所以我们来看看集合的修改方法。
集合常用功能总结
| 编号 | 操作 | 说明 |
| 1 | 集合.add(元素) | 集合内添加一个元素 |
| 2 | 集合.remove(元素) | 移除集合内指定的元素 |
| 3 | 集合.pop() | 从集合中随机取出一个元素 |
| 4 | 集合.clear() | 将集合清空 |
| 5 | 集合1.difference(集合2) | 得到一个新集合,内含2个集合的差集原有的2个集合内容不变 |
| 6 | 集合1.difference_update(集合2) | 在集合1中,删除集合2中存在的元素集合1被修改,集合2不变 |
| 7 | 集合1.union(集合2) | 得到1个新集合,内含2个集合的全部元素原有的2个集合内容不变 |
| 8 | len(集合) | 得到一个整数,记录了集合的元素数 |
集合有如下特点:
(1) 可以容纳多个数据
(2)可以容纳不同类型的数据(混装)
(3)数据是无序存储的(不支持下标索引)
(4)不允许重复数据存在
(5)可以修改(增加或删除元素等)
(6)支持for循环
字典
字典的定义,同样使用0不过存储的元素是一个个的:键值对,如下语法:
#定义字典字面量 {key: valuem key: value,...... key: value} #定义字典变量 my_dict = {key: value, key: value,......, key: value} #定义空字典 my_dict = {} my_dict = dict()字典的注意事项
(1)键值对的Key和Value可以是任意类型(Key不可为字典)
(2)字典内Key不允许重复,重复添加等同于覆盖原有数据
(3)字典不可用下标索引,而是通过Key检索Value
字典的常用操作总结
| 编号 | 操作 | 说明 |
| 1 | 字典[Key] | 获取指定Key对应的Value值 |
| 2 | 字典[Key]= Value | 添加或更新键值对 |
| 3 | 字典.pop(Key) | 取出Key对应的Value并在字典内删除此Key的键值对 |
| 4 | 字典.clear() | 清空字典 |
| 5 | 字典.keys() | 获取字典的全部Key,可用于for循环遍历字典 |
| 6 | len(字典) | 计算字典内的元素数量 |
字典的特点
(1)可以容纳多个数据
(2)可以容纳不同类型的数据
(3)每一份数据是KeyValue键值对
(4)可以通过Key获取到Value,Key不可重复(重复会覆盖)
(5)不支持下标索引
(6)可以修改(增加或删除更新元素等)
(7)支持for循环,不支持while循环
数据容器分类
数据容器可以从以下视角进行简单的分类:
(1)是否支持下标索引
①支持:列表、元组、字符串-序列类型
②不支持:集合、字典-非序列类型
(2)是否支持重复元素:
①支持:列表、元组、字符串-序列类型
②不支持:集合、字典-非序列类型
(3)是否可以修改
①支持:列表、集合、字典
②不支持:元组、字符串
数据容器特点对比
