python之数据存储

  • 列表
  • 元组
  • 集合
  • 字典
  • 存储类型之间的转换
  • 数据存储结构嵌套
  • 容器间的运算操作
  • 切片
  • 推导式


列表

  1. 概念:列表是一种存储大量数据的存储类型
  2. 特点
  • 列表具有索引概念,可以通过索引操作列表中的数据
  • 列表中的数据可以进行添加、删除、修改、查询等操作
  1. 列表的定义和使用
变量名=[数据1,数据2,……]  #创建
变量名[索引] #获取列表中的数据
变量名[索引]=值 #修改列表中的数据
  1. 操作列表常用方法

方法名

功能

参数

返回值

append(data)

在列表的末尾加数据

data:要追加的数据

None

insert(index,data)

在列表的指定位置插入数据(如果索引位置超过最大位置,数据将插入到列表末尾)

index:插入数据的索引位置 data:要插入的数据

None

extend(model)

在列表的末尾追加参数对象中的所有数据

model:保存有数据的存储模型,该模型接受列表、元组、集合类型的对象

None

remove(data)

从列表中删除指定的数据(如果数据不存在将报错)

data:要删除的数据

None

pop(index)

从列表中获取并删除指定索引位置上的数据(如果索引值不存在将报错)

index:指定索引位置

获取到的数据

clear()

清空列表中所有数据


None

index(data)

查询列表中指定数据对应的索引(如果数据不存在将报错)

data:要查询的指定数据

查询的数据第一次出现的索引

count(data)

统计列表中指定数据出现的次数

data:要统计的指定数据

统计的数据的出现的次数

演示:

python 定义C数据结构 python定义存储的数据成员_数据

元组

  1. 概念:元组是一种存储固定数据的存储模型
  2. 特点
  • 元组具有索引概念,可以通过索引操作元组中的数据
  • 元组中的数据可以进行查询操作,但不能进行添加、删除、修改操作
  1. 元组的创建和使用
变量名=(数据1,数据2,……) # 创建
变量名[索引] # 获取元素
  1. 常用方法

方法名

功能

参数

返回值

index(data)

查询元组中指定数据对应的索引(如果数据不存在将报错)

data:要查询的数据

查询的数据第一次出现的索引

count(data)

统计元组中指定数据出现的数量

data:要统计的数据

统计的数据的出现次数

演示:

python 定义C数据结构 python定义存储的数据成员_元组_02

  1. 注意事项
  • 元组中的数据如果是非引用类型数据,不允许修改;如果是引用类型对象,该对象不允许替换,而对象的属性值可以发生改变
  • 元组的特殊应用:自动解包、自动组包
    自动解包:将多个数据赋给一个变量时,多个数据将包装成一个元组,将元组赋值给变量,该过程称为自动组包。
    eg:return 1,2,3 相当于 return (1,2,3)自动解包:将元组赋值给多个变量时,如果元组数据的数量与变量的数量相同,元组将被自动拆分成多个值,并赋值给对应变量,该过程称为自动解包。
    eg:a,b,c=(1,2,3) 等同于 a=1,b=2,c=3

集合

  1. 概念:集合是一种存储大量无序不重复数据的存储类型
  2. 特点
  • 集合没有索引的概念
  • 集合中的元素可以进行添加、删除等操作
  1. 集合的创建
变量名={数据1,数据2,……}
  1. 集合常用方法

方法名

功能

参数

返回值

add(data)

向集合中添加数据

data:要添加的数据

None

remove(data)

从集合中删除指定元素(如果数据不存在将报错)

data:要删除的元素

None

pop()

从集合中获取并删除第一个元素


获取到的数据

clear()

清空集合中所有数据


None

演示:

python 定义C数据结构 python定义存储的数据成员_元组_03

字典

  1. 概念:字典是一种使用“键值对结构”存储数据的存储类型
  2. 特点
  • 字典不具有索引概念,字典使用键key代替索引,可以通过键操作字典中存储的数据值value
  • 字典可以根据键key进行数据的添加、删除、修改、查询等操作
  1. 字典的创建和使用
变量名={键1:值1,键2:值2,……} #创建
变量名[键] #获取
变量名[键]=值 #修改
变量名[键]=值 #如果此时键不存在,该语句会添加新键和数据
  1. 常用方法

方法名

功能

参数

返回值

pop(key)

从字典中删除指定键key对应的键值对(如果键key不存在将报错)

key:要删除的值value对应的key

被删除的value

popitem()

删除并获取字典中最后一对键值对


返回被删除的键值对

setdefault(key,value)

添加新的键值对(如果存在对应的键,则忽略该操作)

key:要添加的新键值对对应的键 value:要添加的新键值对对应的值

添加成功返回value,没有添加则返回原始key对应的value

update(dict)

使用新字典中的数据对原始字典进行更新

dict:新字典对象

None

get(key)

根据键key查询字典中对应的值(如果key不存在将返回None)

key:要查询的键key

key对应的value

keys()

获取字典中所有的键key组成的列表数据


所有键组成的列表

values()

获取字典中所有的值value组成的列表数据


所有值组成的列表

items()

获取字典中所有键值对列表数据


由键值对组成的列表,键值对的格式是元组数据

clear()

清空字典中所有数据


None

演示:

python 定义C数据结构 python定义存储的数据成员_python 定义C数据结构_04


python 定义C数据结构 python定义存储的数据成员_变量名_05

  1. 注意事项
  • 字典中的键是唯一的
  • 当需要存储少量数据,并且期望以最快的速度获取单个数据,推荐使用字典
  • 当需要使用非对象格式保存单个对象的属性值,推荐选择字典

存储类型之间的转换

转换成列表

转换成元组

转换成集合

列表

-

tuple(列表对象)

set(集合对象)

元组

list(元组对象)

-

set(元组对象)

集合

list(集合对象)

tuple(集合对象)

-

数据存储结构嵌套

  1. 概念:指一种数据结构中包含的数据时另一种数据结构
    eg:
list=[1,2,3]
tuple=(4,5)
set={6,7}
dict={"1":8,"2":9}
list1=[list,tuple,set,dict]
  1. 公共方法

方法名

功能

参数

返回值

len(model)

获取容器中的数据总量

model:保存有数据的存储模型,该模型接受各种容器

容器中的数据总量

max(model)

获取容器中的最大值,对于字典获取字典的键key的最大值

model:保存有数据的存储模型,该模型接受各种容器

容器中数据的最大值

min(model)

获取容器中的最小值,对于字典获取字典的键key的最小值

model:保存有数据的存储模型,该模型接受各种容器

容器中数据的最小值

演示:

python 定义C数据结构 python定义存储的数据成员_数据_06

容器间的运算操作

运算符

功能

适用范围

例子

+

将两个容器合并放入一个容器

列表之间或者元组之间

list1+list2

*

将容器复制n次放入容器中

列表、元组

list*n

in

判断容器中是否包含数据

列表、元组、集合、字典(字典判断数据是否在keys()中)

data int list

not in

判断容器中是否不包含数据

列表、元组、集合、字典(字典判断数据是否在keys()中)

data not in list

>、>=、==、<=、<

比较两个容器中的数据关系

列表、元组、集合

list1<=list2

演示:

python 定义C数据结构 python定义存储的数据成员_元组_07

切片

  1. 作用:获取列表、元组或字符串中的局部数据
  2. 语法
容器对象[开始索引:结束索引:步长]
# 省略开始索引,默认开始索引为0
eg:list[:3:1]相当于list[0:3:1]
# 省略结束索引:默认结束索引为数据总量
eg:list[0::1]相当于list[0:len(list):1]
# 省略步长:默认每次递增索引数为1
eg:list[0:3:]相当于list[0:3:1]
# 负数步长:反向操作,需要开始索引、结束索引逆序输入
eg:list[5:0:-1]
# 其他格式
eg:list[:5:] # 获取索引5之前的数据(不含5)
eg:list[4::] #获取索引4之后的数据(含4)

演示:

python 定义C数据结构 python定义存储的数据成员_变量名_08

推导式

  1. 作用:可以快速生成数据存储结构中的数据
  2. 语法
# 格式一
循环变量 for 循环
# 格式二
表达式 for 循环
# 格式三
表达式 for 循环 if 判断

演示:

python 定义C数据结构 python定义存储的数据成员_变量名_09