python专区--容器详解(列表与元组)

容器详解

列表

  • 列表是 有序、可变 的数据类型
  • 列表中可以包含 不同类型 的对象
  • 列表可以由 [] 创建
  • 支持 下标切片 操作

列表的定义

user_list = ["铁锤", "钢弹", "弹头"]
number_list = [98, 88, 666, 12, -1]
data_list = [1, True, "nfx"]

常用方法(功能:增删改查)

为了方便我们操作列表,Python中对所有列表提供了一些的功能。

序号分类关键字 / 函数 / 方法说明
1增加列表.insert(索引, 数据)在指定位置插入数据
列表.append(数据)在末尾追加数据
列表.extend(列表2)将列表2 的数据追加到列表
2修改列表[索引] = 数据修改指定索引的数据
3删除del 列表[索引]删除指定索引的数据
列表.remove(数据)删除第一个出现的指定数据
列表.pop删除末尾数据
列表.pop(索引)删除指定索引数据
列表.clear清空列表
4统计len(列表)列表长度
列表.count(数据)数据在列表中出现的次数
5排序列表.sort()升序排序
列表.sort(reverse=True)降序排序
列表.reverse()逆序、反转
  1. 追加,在原列表中尾部追加值

    图例

    在这里插入图片描述

  2. 插入,在原列表的指定索引位置插入值

    图例

    在这里插入图片描述

  3. 扩展,将一个列表中的元素逐一添加另外一个列表

    图例

在这里插入图片描述

删除
  1. 删除

    • 根据值
    • 从左向右找,找到了就删除,然后停止搜索
    • 没有返回值
    user_list = ["詹姆斯", "韦德", "波什"]
    user_list.remove("波什")
    print(user_list)  # ["詹姆斯", "韦德"]
    
  2. 弹出

    • 根据 索引
    • 默认弹出 尾部元素
    • 有返回值
    user_list = ["詹姆斯", "韦德", "波什"]
    player = user_list.pop()  # 弹出列表尾部元素,并将弹出的元素返回
    print(user_list, player)  # ["詹姆斯", "韦德"]  "波什"
    player = user_list.pop(1)  # 弹出索引为 1 的元素,并将弹出的元素返回
    print(user_list, player)  # ["詹姆斯"] "韦德"
    
  3. del 关键字

    • 使用 del 关键字(delete) 同样可以删除列表中元素
    • del 关键字本质上是用来 将一个变量从内存中删除的
    • 如果使用 del 关键字将变量从内存中删除,后续的代码就不能再使用这个变量了
    user_list = ["詹姆斯", "韦德", "波什"]
    del user_list[1]
    print(user_list)  # ["詹姆斯", "波什"]
    

    在日常开发中,要从列表删除数据,建议 使用列表提供的方法

  4. 清空 原列表

    user_list = ["詹姆斯", "韦德", "波什"]
    user_list.clear()
    print(user_list)  # []
    
  • 修改动作一般是 先查,后改
  • 查:索引,切片
user_list = ["詹姆斯", "韦德", "波什"]
print(user_list[0])  # 查询,詹姆斯
user_list[0] = "杜兰特"  # 改
print(user_list)  # ["杜兰特", "韦德", "波什"]
  • 通过索引查询
  • 通过切片查询
遍历循环
  • 遍历 就是 从头到尾 依次列表 中获取数据
    • 循环体内部 针对 每一个元素,执行相同的操作
  • Python 中为了提高列表的遍历效率,专门提供的 迭代 iteration 遍历
  • 使用 for 就能够实现迭代遍历
# for 循环内部使用的变量 in 列表
for name in name_list:
    # 循环内部针对列表元素进行操作
    print(name)

图例

在这里插入图片描述

其他
  1. 获取长度:len()

    user_list = ["詹姆斯", "韦德", "波什"]
    print( len(user_list) )  # 3
    
  2. 反转:reverse()

    user_list = ["詹姆斯", "韦德", "波什"]
    user_list.reverse()
    print(user_list)  # ["波什", "韦德", "詹姆斯"]
    
  3. 排序:sort(),给列表中的元素排序,默认按从小到大的顺序

    num_list = [2, 3, 1, 4, -100, 10]
    num_list.sort()  # 默认从小到大,正序排列
    print(num_list)
    num_list.sort(reverse=True)  # reverse=True,倒序排列
    print(num_list)
    
  4. 统计元素出现次数:count()

    num_list = [2, 2, 3, 3, -100, 3]
    print(num_list.count(3))  # 2
    print(num_list.count(-100))  # 1
    
  5. 转化:其他类型的元素转换成列表

    message = "今天手感不错进了10个三分球"
    data = list(message)
    print(data)  # ['今', '天', '手', '感', '不', '错', '进', '了', '1', '0', '个', '三', '分', '球']
    

应用场景

  • 尽管 Python列表 中可以 存储不同类型的数据
  • 但是在开发中,更多的应用场景是
    1. 列表 存储相同类型的数据
    2. 通过 迭代遍历,在循环体内部,针对列表中的每一项元素,执行相同的操作

练习题

  1. 写代码,有如下列表,按照要求实现每一个功能。

    li = ["alex", "jerry", "tom", "barry", "wall"]
    
    • 计算列表的 长度 并输出
    • 请通过步长获取索引为 偶数 的所有值,并打印出获取后的列表
    • 列表中追加元素 mike,并输出添加后的列表
    • 请在列表的第 1个位置插入元素 Tony ,并输出添加后的列表
    • 请修改列表第 2 个位置的元素为 Kelly,并输出修改后的列表
    • 请将列表 l2 = [1,”a”,3,4,”heart”] 的每一个元素追加到列表 li 中,并输出添加后的列表
    • 请删除列表中的元素 ”barry”,并输出删除后的列表
    • 请删除列表中的第 2 个元素,并 输出 删除元素后的列表

元组

元组的定义 tuple

  • 通过 () 创建元组
  • 元组是有序的、不可变类型
  • 与列表类似,作用于列表的操作,绝大数也可以作用于元组
  • 一般用于存储一些在程序中不应该被修改的一系列值

常见操作

由于元组不可变的特性,所有没有 增、删、改 操作

atuple = (10, 30, 25, 88)  # 定义一个元组
atuple[0] = 100  # 报错,元组定义以后,不可被修改,赋值
atuple.count(30)  # count(), 统计元组 atuple 中 30 出现的次数 1
atuple.index(88)  # index(), 计算元组 atuple 中元素 88 的下标 3

注意:单元素元组的定义

如果一个元组中只有一个元素,那么创建该元组时,需要加上一个 逗号,否则创建失败

a = ("hello")  # 没加逗号的情况
print(a)
print(type(a))  # str
a = ("hello", )  # 加逗号的情况
print(a)
print(type(a))  # tuple

总结

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭不戳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值