Python及C++中的列表


一、Python中的列表(List)

Python的列表是动态数组,内置于语言中,功能强大且易用,非常适合算法竞赛。

1. 基本概念

  • 定义:列表是一个有序、可变的序列,可以存储任意类型的元素(整数、字符串、甚至其他列表等)。
  • 声明方式
    my_list = []  # 空列表
    my_list = [1, 2, 3]  # 包含元素的列表
    mixed_list = [1, "hello", 3.14]  # 混合类型
    
  • 特点
    • 动态大小:可以随时添加或删除元素,无需预先指定大小。
    • 可变性:可以修改列表中的元素。
    • 索引:支持正向索引(从0开始)和负向索引(从-1开始倒数)。
    • 内存:Python列表内部是动态数组,扩容时会分配更多空间(通常是当前大小的1.5到2倍)。

2. 常用操作

以下是Python列表的核心操作,时间复杂度标注在括号中:

  • 访问元素my_list[i] O ( 1 ) O(1) O(1)
    print(my_list[0])  # 访问第一个元素
    print(my_list[-1])  # 访问最后一个元素
    
  • 修改元素my_list[i] = value O ( 1 ) O(1) O(1)
    my_list[0] = 10  # 将第一个元素改为10
    
  • 追加元素append(value) (均摊 O ( 1 ) O(1) O(1)
    my_list.append(4)  # 在末尾添加4
    
  • 插入元素insert(index, value) O ( n ) O(n) O(n),因为需要移动元素)
    my_list.insert(1, 5)  # 在索引1处插入5
    
  • 删除元素
    • pop(index):删除并返回指定索引的元素,默认删除末尾( O ( 1 ) O(1) O(1)末尾, O ( n ) O(n) O(n)其他位置)
      my_list.pop()  # 删除末尾元素
      my_list.pop(0)  # 删除第一个元素
      
    • remove(value):删除第一个匹配的值( O ( n ) O(n) O(n),因为需要查找)
      my_list.remove(2)  # 删除值为2的元素
      
  • 切片my_list[start:end:step] O ( k ) O(k) O(k),k是切片长度)
    print(my_list[1:3])  # 获取索引1到2的子列表
    print(my_list[::-1])  # 反转列表
    
  • 长度len(my_list) O (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱看烟花的码农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值