课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化

列表那些事儿

  • 什么是列表
  • 列表的特点
  • 列表的定义
  • 字面量定义
  • 列表的构造方法定义
  • 列表中元素的引用
  • 列表中元素的修改
  • 列表的切片操作
  • 列表的用途
  • 列表操作
  • 获取列表元素个数
  • 统计查找操作
  • 增加元素
  • 删除元素
  • 列表排序
  • 元组和列表的区别
  • 相同点
  • 不同点
  • 内存占用
  • 实践是检验真理的唯一标准

  • 什么是列表

    列表是 Python 中最常用的数据类型之一。它是一种有序、可变,异构的数据集合,可以存储多个不同类型的元素。

    列表的特点

    列表是 Python 中的一种数据结构,具有以下特点:

  • 有序性: 列表中的元素按照添加的顺序进行存储,每个元素都有一个对应的索引,可以通过索引访问和操作列表中的元素。
  • 可变性: 列表是可变的,也就是说可以通过索引来修改、删除或插入元素。可以改变列表的长度、内容和顺序。
  • 异构性: 列表中可以同时存储不同类型的数据,例如整数、字符串、浮点数、布尔值等。甚至可以存储其他列表或其他复杂的数据结构。
  • 由于列表的有序性、可变性和多样化的数据类型,它是一种非常常用和灵活的数据结构,常用于存储和处理一组相关的数据。列表提供了丰富的方法和操作,使得对数据的管理和处理变得更加方便和高效。

    列表的定义

    字面量定义

    Python 中使用中括号定义列表。

    l1 = []  # 创建一个空列表
    l2 = [1, 2, 3, "hello", True]  # 创建一个包含多个元素的列表
    

    由于列表具有可变性,所以空列表的定义是被允许且有意义的。

    列表的构造方法定义

    可能通过列表的构造方法定义列表。

    当使用构造方法定义列表时,参数只能是可迭代的对象,构造方法会将参数中的元素构造成为列表的元素。

    可以理解为将可迭代的对象强制类型转换为列表。

    l1 = list("abc")
    l2 = list((1,2,3))
    l3 = list([1,2,3])
    

    列表中元素的引用

    列表同字符串,元组一样,也可以使用下标形式引用列表中的元素。并且,下标不能超过列表的元素个数减一,否则会抛出下标越界错误。

    l = [1,2,3,4,5]
    print(l[0])
    print(l[3])
    print(l[5])
    

    列表中元素的修改

    由于列表的可变特性,可以通过下标的方式,对列表中的元素进行修改。

    l = [1,2,3,4,5]
    l[0] = 111
    l[3] = 444
    

    列表的切片操作

    列表的切片操作同字符串,元组一致

    l = [1,2,3,4,5]
    print(l[0:3])
    print(l[:3])
    print(l[3:])
    print(l[:])
    print(l[::-1])
    

    列表的用途

    列表在 Python 中具有广泛的用途,主要包括以下几个方面:

  • 存储一组相关的数据:
    列表是一种有序的数据结构,可以用于存储一组相关的数据,如学生的成绩、员工的信息、商品的价格等。通过将相关的数据放入列表中,可以方便地进行统一的管理和处理。
  • 数据的容器:
    列表提供了便捷的操作方法,可以进行遍历、搜索、插入和删除等操作。通过索引,可以访问列表中的特定元素;通过遍历,可以逐个处理列表中的元素;通过方法,可以在列表中插入新元素、删除指定元素等。
  • 算法和数据结构中的应用:
    列表是一种重要的数据结构,广泛应用于算法和数据结构的实现中。例如,列表可以用于实现栈(Stack)、队列(Queue)、链表(LinkedList)等数据结构,还可以用于排序算法、搜索算法等的实现。
  • 列表在 Python 中是一种基础且功能强大的数据结构,用途广泛,可以满足各种不同场景下的数据管理和处理需求。

    列表操作

    由于列表的可变特性,Python 为列表提供了丰富的操作方法。

    获取列表元素个数

  • len(l) 获取列表中元素的个数
  • l = [1,2,3,4,5]
    length = len(l)
    

    统计查找操作

  • count(value) 在列表中统计参数 value 出现的次数
  • l = [1,2,3,4,5,1,2,3,3]
    print(l.count(3))
    
  • index(value, start, stop) 在列表中查找参数 value
    第一次出现的下标位置,如果给定范围则只在范围内查找,如果查找目标不存在则抛出错误。
  • l = [1,2,3,4,5,1,2,3,3]
    print(l.index(3))
    print(l.index(3,5,10))
    

    增加元素

  • append(value) 向列表最后追加元素
  • l = []
    l.append(1)
    print(l)
    l.append(1)
    print(l)
    l.append(2)
    print(l)
    
  • extend(iterable) 将一个可迭代对象的元素依次添加到列表最后
  • l1 = [1,2,3]
    l2 = ["a","b","c"]
    
    l1.append(l2)
    print(l1)
    l1.extend(l2)
    print(l1)
    l1.extend("456")
    print(l1)
    l1.extend(("A","B","C"))
    print(l1)
    
  • insert(index, value) 向列表指定下标位置插入一个元素,原有元素依次后移,如果指定下标超过元素个数,则插入到列表最后。
  • l = [1,2,3,4,5]
    
    l.insert(0, "A")
    print(l)
    l.insert(3, "B")
    print(l)
    l.insert(10, "C")
    print(l)
    l.insert(9, "D")
    print(l)
    

    删除元素

  • del 可以使用 del 关键字结合索引来删除指定位置的元素。如果指定的下标不存在则抛出一个错误。
  • l = [1,2,3,4,5,1,2,3]
    del l[0]
    print(l)
    del l[10]
    
  • remove(value) 在列表中删除第一个指定的数据,如果删除的数据不存在则抛出错误
  • l = [1,2,3,4,5,1,2,3]
    l.remove(3)
    print(l)
    l.remove(33)
    
  • pop(index) 从列表中取出并删除指定下标位置的元素,默认取出并删除最后一个元素,如果指定下标不存在,则会抛出一个错误。
  • l = [1,2,3,4,5,1,2,3]
    print(l.pop())
    print(l)
    print(l.pop(3))
    print(l)
    print(l.pop(10))
    
  • clear() 清空列表
  • l = [1,2,3,4,5,1,2,3]
    l.clear()
    print(l)
    

    列表排序

    sort(key, reverse) 对列表进行排序

  • sort 方法默认对基本数据类型进行升序排序
  • reverse 参数将列表元素排序后将列表逆序,实现降序排序
  • key 参数用来指定排序规则,比如使用学生的年龄进行排序(此处不讲解该参数的使用,在 lambda处讲解)
  • l = ["a","abc","ab","A"]
    l.sort()
    print(l)
    l = ["a","abc","ab","A"]
    l.sort(reverse=True)
    print(l)
    

    元组和列表的区别

    相同点

    元组和列表在 Python 中,都是有序的,可迭代的数据结构。
    
    元组和列表都是异构的,都可以存放不同数据类型的元素。
    

    不同点

    元组是不可变的,不可以进行增删改操作,一旦定义,无法修改
    
    列表是可变的,可以对列表中的元素进行增删改操作,空列表有实际意义。
    

    内存占用

    由于元组与列表内部的实现机制不同,在相同元素和个数的情况下,元组占用内存空间更小。
    
    from sys import getsizeof
    t = (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    print(getsizeof(t))
    print(getsizeof(l))
    

    实践是检验真理的唯一标准

    作者:文人sec

    物联沃分享整理
    物联沃-IOTWORD物联网 » python15-列表

    发表回复