8 数据容器概述

  • 数据容器是一种数据类型,有些地方也简称为容器colections
  • 数据容器可以存放多个数据,每一个数据也被称为一个元素;
  • 存放的数据/元素可以是任意类型;
  • 简单的说,数据容器就是一种可以存放多个数据/元素的数据类型;
  • 分类:
    • 列表(list)
    • 元组(tuple)
    • 字符串(str)
    • 集合(set)
    • 字典(dict)

9 列表-List

9.1 基本介绍

9.2 定义

  • 创建一个列表,只要用逗号分隔的不同的数据项使用方括号括起来即可,示例如下:

    list1 = [100, 200, 300, 400, 500]
    list2 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    

9.3 使用

  • 语法:

    列表名[索引]
    
  • 索引从0开始。

9.4 遍历

  • while遍历举例:

    list_color = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    index = 0
    while index < len(list_color): # len()函数用于获取列表的长度
        print(list_color[index])
        index += 1
    
  • for遍历举例:

    list_color = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    index = 0
    for color in list_color:
        print(list_color[index])
        index += 1
    

9.5 注意事项和使用细节

  • 定义一个空列表:

    list1 = []
    # 或
    list1 = list()
    
  • 列表中的元素可以有多个,而且数据类型没有限制(允许嵌套列表),允许有重复元素,并且是有序的(即取出的顺序与其存放的顺序一致);

  • 列表的索引/下标是从0开始;

  • 列表索引必须在指定范围内使用,否则会报错:IndexError: list index out of range

  • 索引可以从尾部开始,最后一个元素的索引为-1,往前一位是-2,以此类推;

    list_color = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    print(list_color[-1])
    print(list_color[-2])
    
    # black
    # white
    
  • 通过列表名[索引] = 新值对数据进行更新,使用列表名.append(值)方法来添加元素,使用del语句来删除列表的元素,注意不能超出有效索引范围;

    list_color = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    list_color[0] = 'brown'
    list_color.append('grey')
    del list_color[0]
    print(list_color)
    
    # ['green', 'blue', 'yellow', 'white', 'black', 'grey']
    
  • 列表是可变序列,列表的元素是可以修改的,修改后列表指向的地址不变,但是对应的元素的地址会发生变化;

    list_color = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    print(f"列表地址:{id(list_color)} 第0个元素的地址:{id(list_color[0])}")
    list_color[0] = 'pink'
    print(f"列表地址:{id(list_color)} 第0个元素的地址:{id(list_color[0])}")
    
    # 列表地址:2386911236480 第0个元素的地址:2386913350672
    # 列表地址:2386911236480 第0个元素的地址:2386913352544
    

9.6 常用操作

函数 作用
len(list) 返回列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表
list.append(obj) 在列表末尾添加新的元素
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值的第一个匹配项的索引位置
list.insert(index, obj) 在索引为index处插入元素
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 翻转列表中的元素
list.sort(key = None, reverse = False) 岁原列表进行排序
list.clear() 清空列表
list.copy() 复制列表

9.7 列表生成式

  • 列表生成式就是“生成列表的公式”;

  • 语法:

    [列表元素的表达式 for 自定义变量 in 可迭代对象]
    
  • 例1:

    [ele * 2 for ele in range(1, 5)]
    # 得到列表[2, 4, 6, 8]
    
  • 例2:

    [ele * ele for ele in range(0, 11)]
    # 得到列表[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐