python五大容器


前言

随着AI智能体技术的快速演进,智能体应用开发已成为数字化转型的核心驱动力,掌握AI智能体应用已成为个人和企业提升竞争力的关键。


容器入门

在这里插入图片描述

容器概念: 可以容纳多个元素的python数据类型,就是容器

容器分类: 字符串str 列表list 元组tuple 集合set 字典dict
有序可重复: 字符串 列表 元组

无序不重复: 集合 字典

本身内容可以修改: 列表 集合 字典

不可以修改的: 字符串 元组

字符串容器

字符串是不可变类型

字符串的定义

定义空字符串: ''  ""   ''''''   """"""   str()
 
定义非空字符串: '字符内容'  "字符内容"   '''字符内容'''   """字符内容"""

注意: 引号可以嵌套包裹

字符串的下标索引

索引: 也叫下标,就是咱们所说的编号,只是这个编号比较特殊,有两套编号

正索引:从左到右,从0开始依次递增
负索引:从右到左,从-1开始依次递减

字符串名[索引]: 查询指定索引位置处的元素

字符串的切片操作

切片的前提:是容器要有索引!!!
切片的格式:字符串名[起始索引:结束标记(不含):步长]
切片的特点:包左不包右,起始索引如果不写默认从头开始,结束标记不写默认到末尾,步长默认是1
切片的方向:步长如果是正数0就是头,步长如果是负数-1就是头
举例:
字符串: i t h e i m a
正索引: 0 1 2 3 4 5 6
负索引:-7-6-5-4-3-2-1

字符串的查

在这里插入图片描述


字符串名[索引]: 查询指定索引位置处的元素
字符串名.count(元素):查询指定元素在字符串中出现的次数 注意:如果元素不存在就返回0
字符串名.index(元素):查询指定元素在字符串中出现的索引位置 注意:如果元素多个只返回第一个,如果不存在就报错
len(字符串名): 查询指定字符串的元素总个数

字符串的特有操作

在这里插入图片描述

replace(旧字符串,新字符串,替换几次): 把指定旧字符串替换为新字符串,默认替换所有
strip(): 默认就是去除两端的空白

split(分隔符,切几次): 根据指定分隔符切割字符串,默认切所有并放到列表中
分隔符.join(存储了字符串的容器): 用指定分隔符把容器中的字符串拼接一个大字符串

startswith(字符串): 判断是否以指定字符串开头
endswith(字符串): 判断是否以指定字符串结尾

encode(编码): 编码操作
decode(编码): 解码操作

upper(): 把所有字母都转为大写
lower(): 把所有字母都转为小写

find(元素):从左往右查找指定元素在字符串中出现的索引位置(正索引),如果不存在就返回-1
rfind(元素):从右往左查找指定元素在字符串中出现的索引位置(正索引),如果不存在就返回-1

isdigit(): 判断字符串内容是否是数字

字符串的遍历

for循环又叫遍历循环,格式如下:

for 元素变量 in 字符串:
	循环体

while循环,用变量充当索引使用,格式如下:

index = 0
while index < len(字符串):
	元素变量 = 字符串[index]
	循环体
	index += 1

字符串的特点

可以容纳多个元素
元素只能是字符!!!
元素可以重复
元素不可以修改!!!
元素是有序的
元素是有下标索引
支持for循环遍历
支持while循环遍历

列表的定义

定义空列表: [] 或者 list()

定义非空列表: [元素1,元素2,元素3, …]

列表支持嵌套: [ [元素…] , [元素…] ]

列表的下标索引

索引: 也叫下标,就是咱们所说的编号,只是这个编号比较特殊,有两套编号

正索引:从左到右,从0开始依次递增
负索引:从右到左,从-1开始依次递减

列表名[索引]: 查询指定索引位置处的元素

列表的增删改查

增
	列表名.append(元素): 把指定元素追加到对应列表中   
	列表名.extend(容器): 把指定容器中的元素依次取出追加到对应列表中
	列表名.insert(索引,元素): 把指定元素插入到对应列表的指定索引位置
删
	列表名.pop(索引): 把指定索引位置处元素从列表中删除  
	del 列表名[索引]: 把指定索引位置处元素从列表中删除
	列表名.remove(元素): 把指定元素直接从列表中删除   注意:一次只会删除一个   重点
	列表名.clear(): 清空列表中所有元素
	del 列表名: 删除整个列表
改
	列表名[索引] = 新元素 : 修改列表指定索引位置的元素  
查
	列表名[索引]: 查询指定索引位置处的元素        
	列表名.count(元素):查询指定元素在列表中出现的次数    注意:如果元素不存在就返回0   
    列表名.index(元素):查询指定元素在列表中出现的索引位置 注意:如果元素不存在就报错,多个只返回第一个位置
    len(列表名): 查询指定列表的元素总个数    

列表的遍历

for循环又叫遍历循环,格式如下:

for 元素变量 in 列表名:
	循环体

while循环,用变量充当索引使用,格式如下:

index = 0
while index < len(列表名):
	元素变量 = 列表名[index]
	循环体
	index += 1

列表的特点

"""列表是可变类型"""
"""
列表的特点:
1.支持容纳多个元素
2.支持for循环遍历
3.支持修改操作
4.能存储任意类型数据
5.有下标索引->支持while循环
6.有下标索引->有序(存进去和取出来顺序一致)
7.有下标索引->可以重复
"""

元组的定义

定义空元组: () 或者 tuple()

定义非空元组: (元素1,元素2,元素3,…)

注意!!!: 如果元组中只有一个元素,必须加逗号 格式: (元素,)

元组的下标索引

索引: 也叫下标,就是咱们所说的编号,只是这个编号比较特殊,有两套编号

正索引:从左到右,从0开始依次递增
负索引:从右到左,从-1开始依次递减

元组名[索引]: 查询指定索引位置处的元素

元组的查


元组名[索引]: 查询指定索引位置处的元素
元组名.count(元素):查询指定元素在元组中出现的次数 注意:如果元素不存在就返回0
元组名.index(元素):查询指定元素在元组中出现的索引位置 注意:如果元素不存在就报错,多个只返回第一个位置
len(元组名): 查询指定元组的元素总个数

元组的遍历

for循环又叫遍历循环,格式如下:

for 元素变量 in 元组名:
	循环体

while循环,用变量充当索引使用,格式如下:

index = 0
while index < len(元组名):
	元素变量 = 元组名[index]
	循环体
	index += 1

元组的特点

"""元组不是可变类型"""
"""
元组的特点:
1.支持容纳多个元素
2.支持for循环遍历
3.不支持修改操作!!!
4.能存储任意类型数据
5.有下标索引->支持while循环
6.有下标索引->有序(存进去和取出来顺序一致)
7.有下标索引->可以重复
"""

序列详解

五大容器中属于序列的有: 字符串 列表 元组

1.序列支持切片(截取部分内容)格式-> 序列[开始索引:结束位置:步长]
注意事项如下:
    1.序列有两套索引: 正索引从0开始从左到右依次递增,负索引从-1开始从右到左依次递减
    2.步长决定截取方向: 正步长代表从左到右,负步长代表从右到左 
    3.开始索引:如果留空,默认代表从头开始
    4.结束位置:结束索引=结束位置-1,如果留空默认代表到尾部()结束
    
2.序列支持运算符如下    
+ : 序列+序列: 两个序列内容拼接返回一个新序列
* : 序列*x:表示序列的内容乘以x份放到一个新的序列中返回

集合的定义

定义空集合:  集合名 = set()

定义非空集合: 集合名 = {元素1,元素2,元素3...}

集合核心特点: 无序不重复   元素只能是不可变类型(整数,浮点数,布尔值,字符串,元组)

集合的增删改查

增
	集合名.add(元素): 把指定元素添加到对应集合中
删
	集合名.pop(): 随机删除一个元素
	集合名.remove(元素): 把指定元素直接从集合中删除   注意:一次只会删除一个
	集合名.clear(): 清空集合中所有元素
	del 集合名: 删除整个集合
改
	集合1.difference_update(集合2): 修改集合1的内容为它和集合2元素的差集
	集合1.update(集合2): 修改集合1的内容为它和集合2的并集
查
    len(集合名): 查询集合元素的总个数

集合的遍历

for循环又叫遍历循环,格式如下:

for 元素变量 in 集合名:
	循环体

while循环,必须用变量充当索引使用,因为集合没有索引,所以不支持while循环

集合的遍历

"""集合是可变类型"""
"""
集合的特点:
1.支持容纳多个元素
2.支持for循环遍历
3.支持修改操作
4.只能存储不可变类型数据:整数,浮点数,布尔值,字符串,元组
5.没有下标索引->不支持while循环
6.没有下标索引->无序(自带去重功能)
7.没有下标索引->不重复
"""

字典的定义

定义空字典: 字典名 = {} 和 字典名 = dict()

定义非空字典: 字典名 = {k1:v1 , k2:v2 , k3:v3 …}

注意: 键key:只能是不可变类型且不能重复 值value可以是任意类型且可以重复

字典的键key

字典名[key]: 根据指定的键key获取值value

字典名.get(key): 根据指定的键key获取值value

字典的增删改查


字典名[新key] = value : 在字典中添加一个键值对 新key:value

字典名[旧key] = value : 在字典中修改旧key对应的值为value

字典名.pop(key): 根据key删除对应的键值对
del 字典名[key]: 根据key删除对应的键值对
字典名.clear(): 清空字典中所有元素
del 字典名: 删除整个字典

字典名[key]: 根据key获取value
字典名.get(key): 根据key获取value
len(字典名): 获取字典中键值对的个数
字典名.keys(): 获取所有的key
字典名.values(): 获取所有的values
字典名.items(): 获取所有的键值对 注意: 每个键值对都单独封装为元组

字典的遍历

for循环又叫遍历循环,格式如下:

# 方式1: 直接遍历字典获取key,然后根据key找value
for k in 字典:
	v = 字典[k]
		循环体
	# 方式2: 先获取所有键值对元组,然后对元组拆包分别拿到key和value
for k,v in 字典.items:
	循环体

字典的特点

"""字典是可变类型"""
"""
字典的特点:
1.支持容纳多个元素
2.支持for循环遍历
3.支持修改操作
4.每个元素是键值对:key只能是不可变类型,value可以是任意类型数据
5.没有下标索引->不支持while循环
6.没有下标索引->无序
7.没有下标索引->键不能重复
"""

推导式详解

Python 的推导式(Comprehension)是一种简洁、优雅的语法,用于创建数据结构。它能够通过一行代码生成列表、字典、集合或生成器表达式。

数据容器中共有三种支持推导式: 列表推导式、集合推导式、字典推导式

在这里插入图片描述

五大容器总结对比

是否是序列
    序列:列表 元组 字符串
    非序列: 集合  字典

是否是可变类型
    可变类型:列表、集合、字典
    不可变类型: 元组、字符串

在这里插入图片描述

通用操作

在这里插入图片描述

容器转换

在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐