python基础-5大容器

昨日回顾

for循环

for : 循环重复一件事 跟while一样

python 复制代码
for 变量 in 被循环的内容:

循环体

被循环的内容: 字符串 range(开始,结束) 列表

else 正常循环结束 执行的内容

string 数据类型 不可变数据类型 其实也是变量 用于存储字符

name = 'abcd...'

字符串切片

切片: 字符串的截取 用于获得字符串一部分内容

python 复制代码
字符串[ startIndex, endIndex , step ]  含头不含尾

startIndex : 开始索引 如果步长是正整数 默认值为0 如果步长为负整数 默认值为-1

endIndex : 结束索引 默认就是最后一个 取决步长是正数还是负数

step : 步长 默认值为1

其他方法:

查找:

**find()**找到一个匹配的内容索引返回 找不到返回-1

index() 找到一个匹配的内容索引返回 找不到就报错

修改:

**replace(old , new , count)**替换 将旧的内容换成新的内容 count表示替换的次数

**split ("") 切割:**将字符串中指定的内容进行分割 将分割好的放在列表中 [元素, 元素,元素]

**join () 拼接:**将一段内容按照特殊的符号进行拼接

今日课程

列表:(list)

为什么需要列表?

列表一次可以储存多个数据

列表的定义?

python 复制代码
语法:

列表名称 = [元素1, 元素2, 元素3, ...]

注意: 列表是可变的

# 例:定义一个列表,用于保存苹果、香蕉以及菠萝
list1 = ['apple', 'banana', 'pineapple']
# list列表类型支持直接打印
print(list1)
# 打印列表的数据类型
print(type(list1))  # <class 'list'>

注意:列表可以一次存储多个数据且可以为不同的数据类型

python 复制代码
# 演示列表
"""
    如何定义列表:
        列表的变量名称 = [元素1,元素2,元素3.......]

"""
# 需求1: 请定义一个列表, 要求列表中存储  张三 李四 6 赵六 True... 多个姓名,不同的数据类型
list1 = ['张三','李四',6,'赵六',True,'周八','李九']

# 如何获取列表中每一个元素呢?  与 字符串方式 一致  都是基于索引下标的方式
# 获取第三个数据: 索引为 2
e = list1[2]
print(e)

# 使用切片获取某个范围的数据: 获取 第2到第5个, 不含第五个
es = list1[1:4]
print(es)

# 如何将列表中每一个元素依次的获取出来呢? 遍历列表呢?
print("------------------------------")
# for循环:
for e in list1:
    print(e)

列表的相关操作

列表的作用是一次性存储多个数据,我们可以对这些数据进行的操作有:

增、删、改、查。

查操作
python 复制代码
# 演示: 列表的查询API
"""
    index() : 判断传入的元素在列表中索引下标 如果不存在 直接报错
    count() : 统计传入的指定元素 在 列表中出现了多少次
    in :  判断某个元素是否存在  如果存在 返回True  如果不存在 返回False
    not in : 判断某个元素是否不存在  如果不存在 返回True  如果存在 返回False

"""

# 1- 定义一个列表
list1 = ['张三', '李四', 5, 10, True, False, 5, '张三', '张三']
print(list1)

# 2- 演示相关的API
# 2.1 index:  判断 李四在列表中下标位置
print(list1.index('李四'))

# 2.2 count : 统计 张三在列表中出现了多少次呢
print(list1.count('张三'))

# 2.3 in 和 not in
# 判断 数字5 是否在 容器中, 如果在, 帮我统计 数字5 出现了多少次
if 5 in list1:
    # 说明  5 是存在容器中
    print(f'5在容器中出现了{list1.count(5)}次')
else:
    print("不存在")
增操作
python 复制代码
# 演示 列表的添加操作
"""
   append():  向列表的尾部添加数据
   extend():  用于将一个列表中每一个元素直接添加到另一个列表中
   insert():  用于向指定位置添加元素 
"""

# 定义一个列表
list2 = [7, 5, 3, 9, 10, 2]
print(list2)
# 需求1: 向列表添加一个数字 20
list2.append(20)
print(list2)

# 需求2: 有以下一个列表, 请将该列表中元素添加到 list2中
list3_tmp = [15,19,13]
list2.extend(list3_tmp)
print(list2)

# 需求3: 在索引 2的位置 添加一个 100
list2.insert(2,100)
print(list2)
删操作
python 复制代码
# 演示 列表的元素删除
"""
    del 列表[索引] : 删除指定索引的元素  无返回值
    pop():  删除指定索引下标的元素, 如果不设置下标, 默认删除尾部的一个元素, 并且将该元素作为返回值返回
    remove():  删除指定的元素, 移除是匹配到的第一个元素
"""

# 需求1: 删除 索引下标为 2 的数据
del list2[2]
print(list2)

# 需求2: 从直接弹出当前列表中最后一个元素,并且拿到该元素的内容
e = list2.pop()
print(e)
print(list2)

# 需求3: 删除列表中 数字 20
list2.remove(20)
print(list2)
改操作
python 复制代码
# 列表修改操作:
"""
    列表[索引] = 修改后的值  :  将指定索引的元素进行重新赋值
    reverse() : 对列表 进行 反转
    sort(): 对列表进行排序操作
"""

# 需求1: 请修改 第5个索引的数据, 将其更改4
list2[5] = 4
print(list2)

# 需求2: 对列表进行反转:
list2.reverse()
print(list2)

# 需求3: 对数据进行排序操作
list2.sort(reverse=False)
print(list2)

列表的循环遍历

什么是循环遍历?答:循环遍历就是使用while或for循环对列表中的每个数据进行打印输出

python 复制代码
"""
    语法: for 变量 in 列表   for循环(个人比较推荐)
"""
list1 = ['貂蝉', '大乔', '小乔']

# for
for temp in list1:
    print(temp)

列表的嵌套

1, 2, 3, 4, 5 , \[a,b,c,\[ a,b,c,d \]\]

列表的嵌套:列表中又有一个列表,我们把这种情况就称之为列表嵌套

在其他编程语言中,称之为叫做二维数组或多维数组

python 复制代码
# 列表的嵌套使用: 列表中的元素 依然是一个列表
# 假设黑马程序员北京校区有三个大模型班级, 每个班级有五位同学, 请帮我保存一下这个校区信息

class_LLM_1 = ['小张','小李','小王','小赵','小孙']
class_LLM_2 = ['张三','李四','王五','赵六','田七']
class_LLM_3 = ['周八','李九','老王','老田','老李']

# 当前这个 bj_hm 是一个列表, 列表中有三个元素, 每一个元素又是一个列表, 此时就是列表的嵌套应用
# 当前嵌套二层: 称为 二维列表   如果大于二层,称为多维列表
bj_hm = [class_LLM_1,class_LLM_2,class_LLM_3]

# 如何遍历呢? 获取每一个姓名
for e_list in bj_hm:
    for name in e_list:
        print(name)

元组(tuple):

为什么需要元组?

使用元组,元组可以存储多个数据元组内的数据是不能修改的。

元组的定义

元组特点:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型

python 复制代码
语法:
# 多个数据元组
tuple1 = (10, 20, 30)

# 单个数据元组
tuple2 = (10,)

正确:tuple2 = (10,) → 类型为 <class 'tuple'>

注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型。

元组的相关操作方法

由于元组中的数据不允许直接修改,所以其操作方法大部分为查询方法。

python 复制代码
"""
    1.元组可以存放多种数据类型
    2.元组中的数据允许重复
    3.元组不可被修改
    查询:
        元组[索引]
        index('搜索的内容') 查找指定数据的索引 找到返回索引 没有找到报错
        len() 获得元组的长度
"""
tuple_1=( 10 , 20 , 30, 40 ,'jack','rose' , True , 10 , 20 ,'jack')
print(tuple_1)
print( tuple_1[4])
print( tuple_1.index('jack'))
print( tuple_1.count('jack'))
print( len(tuple_1) )

for temp in tuple_1:
    print(temp)

集合的定义与使用(set)

什么是集合?

集合(set)是一个无序不重复元素序列。

① 天生去重

② 无序

有序的序列 无序的序列

合的定义

在Python中,我们可以使用一对花括号{}或者set()方法来定义集合,但是如果你定义的集合是一个空集合,则只能使用set()方法。

集合操作的相关方法(增删查)

**add()方法:**向集合中增加一个元素(单一)

remove()方法:删除集合中的指定数据,如果数据不存在则报错。

集合中的查操作

① in :判断某个元素是否在集合中,如果在,则返回True,否则返回False

② not in :判断某个元素不在集合中,如果不在,则返回True,否则返回False

python 复制代码
# 演示集合操作
"""
    如何定义呢?
        方式一:  集合变量名称 = {元素1,元素2,元素3.....}
        方式二: 定义空集合    集合变量名称 = set()

    相关的API:
        添加数据API:  add()
        删除数据API:  remove()
        查询数据API:
                in: 判断是否存在
                not in 判断是否不存在
                遍历集合

    特性:  无序  和  去重   同时 set是可变类型
"""

# 1- 如何定义集合
# 方式一
set1 = {1, 2, 3, 2, 6, '张三', '李四', '张三'}
print(set1)

# 方式二:
set2 = set()
print(set2)

# 2- 相关的操作:
# 2.1 添加数据: 给 set2 添加  1  2  3  三个元素
set2.add(1)
set2.add(2)
set2.add(3)
print(set2)

# 2.2 删除数据:  请将 set1中 张三 删除
set1.remove('张三')
print(set1)

# 2.3 查找操作: 查询 在 set1中是否有 王五 如果没有 请添加
if '王五' not in set1:
    # 添加王五
    set1.add('王五')

print(set1)

# 2.4 遍历操作
for e in set1:
    print(e)

字典的定义与使用(dict)

为什么需要字典(dict)?

可以将一个人的所有属性数据放到一个元素中

Python中字典(dict)的概念

特点

① 符号为大括号(花括号) => {}

② 数据为键值对形式出现 => {key:value},key:键名,value:值,在同一个字典中,key必须是唯一(类似于索引下标)

③ 各个键值对之间用逗号隔开

关于字典的保护

在字典中,键名除了可以使用字符串的形式,还可以使用数值的形式来进行表示

在Python代码中,字典中的key必须使用引号引起来

字典的增操作

python 复制代码
语法:
字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

字典的删操作

  1. del字典名称[key]:删除指定元素
  2. clear()方法:清空字典中的所有key

字典的改操作

python 复制代码
语法:
字典名称[key] = value
注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

字典的查操作

使用具体的某个key查询数据,如果未找到,则直接报错。

python 复制代码
字典序列[key]
python 复制代码
"""
    字典都是以键值对的方式出现的
    增   字典的key不存在 即是新增
        字典[key] = value
    改  字典的key存在 即是修改
        字典[key] = value
    删
        del 字典[key]  删除一个指定属性
        clear()  清空字典的所有数据
    查
        字典[key] : 获得指定key的value数据
    支持循环
        字典.keys() 获得字典中所有的键
        # 方案1: 遍历字典的所有key 然后在循环中获得所有的值
        for key in dict_1.keys():
            print( key , dict_1[key] )
        # 方案2: 遍历字典的所有value 在循环中打印值即可
        for temp in dict_1.values():
            print(temp)
        # 方案3 : 字典中提供函数 items() 项   在遍历的过程 自动将一组数据转换成元组数据
        for temp in dict_1.items():
            print(temp[0] , temp[1])
        # 方案4 : 自动拆包
"""
dict_1 = {'username': 'tom', 'age': 20, 'gender': '男', 'address': '北京昌平区'}
print(dict_1)
# 新增一个属性 电话 phone  13811112222
dict_1['phone'] = '13811112222'
print(dict_1)
# 修改username 的名字为 嬲嫐
dict_1['username']='嬲嫐'
print(dict_1)

# 删除address属性
del dict_1['address']
print(dict_1)
#dict_1.clear()
#print(dict_1)

print(dict_1['gender'])

# 遍历数据
# 方案1: 遍历字典的所有key 然后在循环中获得所有的值
for key in dict_1.keys():
    print( key , dict_1[key] )
print("--------------------------------------------------")
# 方案2: 遍历字典的所有value 在循环中打印值即可
for temp in dict_1.values():
    print(temp)
print("--------------------------------------------------")
# 方案3 : 字典中提供函数 items() 项   在遍历的过程 自动将一组数据转换成元组数据
for temp in dict_1.items():
    print(temp[0] , temp[1])

容器拆包

什么是拆包?

简单来说就是把一个元组中的数据一个一个拆解出来的过程,就称之为叫做拆包操作。

python 复制代码
tuple1 = (10, 20)
# 拆包
num1, num2 = tuple1

以上代码可以简写为
num1, num2 = (10, 20)

还可以进一步简写
num1, num2 = 10, 20
相关推荐
会编程的土豆7 小时前
Go 连接 Redis 代码详细解析
开发语言·redis·golang
RSTJ_16257 小时前
PYTHON+AI LLM DAY FOURTY-NINE
人工智能·python·深度学习
测试员周周7 小时前
【AI测试路线图2】功能测试转 AI 测试:4~5 个月,一条最稳的路
开发语言·人工智能·python·功能测试·测试工具·单元测试·pytest
多敲代码防脱发7 小时前
Spring进阶(Bean的生命周期与Bean的后处理器)
java·服务器·开发语言·spring boot·spring·servlet
吃好睡好便好7 小时前
在Matlab中绘制峰值图
开发语言·学习·算法·matlab·信息可视化
兩尛7 小时前
std::shared_mutex、std::mutex和std::recursive_mutex是什么锁
开发语言·c++·算法
A-刘晨阳7 小时前
用树莓派搭一个弱网模拟网关,让你的应用在2G、高延迟、丢包环境下跑一遍
开发语言·php
流年如夢7 小时前
类和对象(上)
android·java·开发语言
70asunflower7 小时前
计算机中的绝对路径和相对路径
python·学习