Python 5个数据容器

列表(list)

特点:可以被修改

列表的定义

定义空列表:

变量名 = \[\] 变量名 = list()

定义变量:

变量名 = 元素1,元素2,元素3,...

取出列表元素

列表名 下标索引

从前向后,从0开始;从后向前,从-1开始

嵌套列表:

列表的常用操作
列表.append(元素)

向列表追加一元素

列表.extend(容器)

将数据容器的内容依次取出,追加到列表尾部

列表.insert(下标,元素)

在指定下标处,插入指定元素

del 列表下标

删除列表指定下标元素

列表.pop(下标)

删除列表指定下标元素;还能把删掉的元素作为返回值得到

列表.remove(元素)

从前向后,删此元素第一个匹配项

列表.clear()

清空列表

统计
列表.count(元素)

统计此元素在列表中出现的次数

len(列表)

统计容器内有多少元素

列表.index(元素)

查找指定元素在列表的下标

列表的遍历

while

for ------ 只是将容器里面的内容挨个取出

for ele in 1,2,3,4,5:

print(f"列表中的元素有:{ele}")

元组(tuple)

特点:不可被篡改

元组的定义

定义空元组:

变量名 = () 变量名 = tuple()

定义元组变量:

变量名 = (元素1,元素2,元素3,...)

🔺定义单个元素

t1 = ("hello",) //当元组只有一个数据时,这个数据后面要加,

取出元组元素

元组名 下标索引

嵌套元组:

python 复制代码
my_tuple = ( (1 , 2 , 3 ) , (4 , 5 , 6) )
print(my_tuple[0][1])

my_list0 = (1 , 2 , 3)

元组的常用操作
index()

查找某个数据,存在返回对应的下标

统计
count()

统计某个数据在当前元组出现的次数

len(元组)

统计元组内的元素个数

元组的遍历

while

for

for ele in (1,2,3,4,5):

print(f"元组的元素有:{ele}")
注意:元组的内容不可修改;但元组内的列表的内容可以修改

t1 = (1, 2, 'itheima', 'itcast' )

t121 = 'best'

>> (1, 2, 'itheima', 'best' )

字符串(str)

不可修改

取出字符串特定位置的字符

从前向后,下标从0开始

从后向前,下标从-1开始

字符串的常用操作
查找
字符串.index(字符串)

查找特定字符串的下标索引值(返回该字符串在原字符串的起始下标)

替换
字符串.replace(字符串1,字符串2)

将字符串中,字符串1的全部内容替换为字符串2(得到的是一个新字符串,不是修改字符串本身)

分割
字符串.split(分隔符字符串)

按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中

python 复制代码
my_str = "hello python itheima itcast"
new_my_str = my_str.split(" ")
print(new_my_str)

>> 'hello', 'python', 'itheima', 'itcast'

去除

去除字符串前后空格和换行符 ------ 字符串.strip()

python 复制代码
my_str = " hello python itheima itcast "
print(my_str.strip())

去除字符串前后指定字符串 ------ 字符串.strip(字符串)

python 复制代码
my_str = "12hello python itheima itcast21"
print(my_str.strip("12"))

按照单个字符串(划分两个小子串,满足任意一个就去掉),1,2都会被移除

统计
字符串.count(字符串)

统计字符串中某字符串的出现次数

len(字符串)

统计字符串的长度

字符串的遍历

while

for

for i in "黑马程序员":

print(i)

序列的切片

列表、元组、字符串均可视为序列;序列支持切片

语法:序列 起始下标:**结束下标(不含)**:步长

步长为1:(一步一个)一个个取;步长为2:(一步两个)跳一个取;步长为N:跳N-1个取;

步长为负数:反向取(起始下标,结束下标也要反向标记)

1.my_tuple = (0,1,2,3,4,5,6)

print(my_tuple:) //起始和结束不写表示从头到尾;步长为1可以省略

>>(0,1,2,3,4,5,6)

2.my_str = "01234567"

print(my_str::2)

>>0246

3.my_str = "01234567"

print(my_str::-1) //等同于将序列反转

>>76543210

序列切片的实践

python 复制代码
my_str = "万过薪月,员序程马黑来,nohtyP学"
#1.倒序,切片取出
print(my_str[::-1][9:14])
#2.切片取出,再反转
print(my_str[5:10][::-1])
#3.split,分隔;来替换空(是空!);倒序字符串
print(my_str.split(",")[1].replace("来","")[::-1])

集合(set)

集合的定义

特点:无序,不支持下标索引访问,但允许修改;去重;

定义空集合:

变量名 = set()

定义集合变量:

变量名 = {元素1,元素2,元素3,...}

集合常用操作
添加新元素

集合.add(元素)

将指定元素,添加到集合内

移除元素

集合.remove(元素)

从集合中随机取出一个元素

集合.pop()

清空集合

集合.clear()

集合1中求集合2的补集

集合1.difference(集合2) //集合1有而集合2没有;集合1、集合2不变

python 复制代码
set1={1,2,3}
set2={1,5,6}
print(set1.difference(set2))

>>{2,3}

消除两个集合交集

集合1.difference_update(集合2)//集合1内删和集合2相同的元素;集合1被修改;集合2不变

python 复制代码
set1={1,2,3}
set2={1,5,6}
set1.difference_update(set2)
print(set1)

>> {2,3}

2个集合合并为1个集合

集合1.union(集合2)//将集合1和集合2组合成新集合

统计集合元素数量

len(集合)

集合的遍历

集合不支持下标索引,不能用while;得用for

for ele in {1,2,3,4,5}:

print(ele)

字典(dict)

特点:字典不允许key的重复;新的会把老的覆盖掉

字典的定义

定义空字典:

my_dict = {} my_dict = dict()

定义字典变量:

my_dict = { key : value, key : value , ... , key : value }

字典数据的获取

通过key取对应的value

字典的嵌套

用字典记录学生各科的考试信息

|-----|----|----|----|
| 姓名 | 语文 | 数学 | 英语 |
| 王力宏 | 77 | 66 | 33 |
| 周杰伦 | 88 | 86 | 55 |
| 林俊杰 | 99 | 96 | 66 |

python 复制代码
my_dict = {
    "王力宏" : {
        "语文" : 77,
        "数学" : 66,
        "英语" : 33
    },
    "周杰伦" : {
        "语文" : 88,
        "数学" : 86,
        "英语" : 55
    },
      "林俊杰" : {
        "语文" : 99,
        "数学" : 96,
        "英语" : 66
    }
}

看周杰伦的语文信息 ------ my_dict"周杰伦""语文"

字典的常用操作
新增和更新
字典key = value

对不存在的key执行这个操作,是新增;对已存在的key执行这个操作,是更新value值

删除元素
字典.pop(key)

返回指定key的value

清空字典
字典.clear()
获取全部key
字典.keys()

得到字典中的全部key

统计字典内元素数量
len(字典)

len(my_dict)

相关推荐
baopixiaoz5 分钟前
AI量化策略师|Web3 量化交易研究员
大数据·人工智能·python·区块链
Uncommon.39 分钟前
使用Pytorch自动计算梯度
人工智能·pytorch·python
阿标的博客1 小时前
Python实训案例(二):输出植物证书
python
鸿芯微控科技1 小时前
压电点胶阀出胶量不稳定怎么排查?驱动波形、背压、点胶重量与Python分析
开发语言·python·压电点胶阀·精密点胶·点胶重量·流体控制
一位正在转型AI全栈的前端工程师1 小时前
从 0 到 1 搭建生产级 RAG 系统:切片、召回与重排序调优实录
python·前端工程化
糖炒栗子03261 小时前
learn-claude-code 简要记录
笔记·python
测试19982 小时前
Python接口测试之requests库安装和导入
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
%472 小时前
DAY 34
python
leisoo80972 小时前
涨停板次日表现因子怎么挖掘本地化Python全流程实战
大数据·人工智能·python
像颗糖2 小时前
AG-UI:把 Agent 与前端之间的“私有暗号”变成标准协议
python·agent·ai编程