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

数据容器:list(列表)

列表的定义方式:

使用[]的方式定义列表
[元素1, 元素2, 元素3, …]
如my_list = [‘a’,‘b’,‘c’]
空列表 koog_list=list()

列表的下标索引

列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增
如my_list[0],my_list[1]

常用操作如下:

image-1674650597101

列表的特点:

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

列表的遍历 - while循环

index = 0
while index < len(my_list):
    a = my_list[index]
    print(a)
    index += 1

列表的遍历 - for循环

for i in my_list:
    print(i)

#数据容器:元组(tuple)
元组一旦定义完成,就不可修改
所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了

元组的定义:

yuan = (元素1,元素2,…)
yuan = ()或yuan = tuple()

元组的相关操作:

方法 作用
index() 查找某个数据,如果数据存在返回对应的下标,否则报错
count() 统计某个数据在当前元组出现的次数
len(元组) 统计元组内的元素个数

元组由于不可修改的特性,所以其操作方法非常少

数据容器:str(字符串)

字符串常用操作:

image-1674701840963

字符串的特点:

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

数据容器(序列)的切片

序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以可以视为序列。
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列
[n:m] 包前不包后
起始下标表示从何处开始,可以留空,留空视作从头开始
结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
步长表示,依次取元素的间隔

切片的演示:

my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4]	# 下标1开始,下标4(不含)结束,步长1
print(new_list)		# 结果:[2, 3, 4]
my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:]	# 从头开始,到最后结束,步长1
print(new_tuple)		# 结果:(1, 2, 3, 4, 5)
my_list = [1, 2, 3, 4, 5]
new_list = my_list[::2]		# 从头开始,到最后结束,步长2
print(new_list)		# 结果:[1, 3, 5]
my_str = "12345"
new_str = my_str[:4:2]	# 从头开始,到下标4(不含)结束,步长2
print(new_str)		# 结果:"13"
my_str = "12345"
new_str = my_str[::-1]	# 从头(最后)开始,到尾结束,步长-1(倒序)
print(new_str)		# 结果:"54321"
my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:1:-2] 	# 从头(最后)开始,到下标1(不含)结束,步长-2(倒序)
print(new_tuple)		# 结果:(5, 3)
my_list = [1, 2, 3, 4, 5]
new_list = my_list[3:1:-1]	# 从下标3开始,到下标1(不含)结束,步长-1(倒序)
print(new_list)		# 结果:[4, 3]

数据容器 :set(集合)

特点:去重且无序,可以修改
集合的定义
变量 = set()
变量 ={元素1,元素2,元素3,…}.

集合常用功能:
image-1674787778547

数据容器:dict(字典、映射)

python的字典:
Key: Value
字典的定义,同样使用{},不过存储的元素是一个个的:键值对
变量 ={key:value,ey:value,ey:value…}
变量 = {}
变量 = dict()

字典的注意事项:

  • 键值对的Key和Value可以是任意类型(Key不可为字典)
  • 字典内Key不允许重复,重复添加等同于覆盖原有数据
  • 字典不可用下标索引,而是通过Key检索Value

常用操作总结

image-1674788363489
遍历字典:
keys = 变量.keys
for key in keys:
print(f"{key},{变量[key]}")

字典生成式 :

d = {key: value for (key, value) in iterable}

其中iterable是一个可迭代的对象,比如list

实列:

# for 循环遍历列表,将列表中小元组的key和value取出,作为字典中的key:value

list4 = [('name','zhangsan'),('age','11'),('phone','a')]
dict_1 = {key:value for key,value in list4}
print (dict_1)

输出

{'phone': 'a', 'name': 'zhangsan', 'age': '11'}

数据容器特点对比:

image-1674788631150

基于各类数据容器的特点,它们的应用场景如下:

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

容器通用功能总览:

image-1674788711358