Python入门
  • Python入门
  • 0. 基础知识与安装
    • 0. 计算机基础知识
    • 1. Windows下安装
    • 2. 通过软件包管理器安装
    • 3. 通过源码安装
    • 4. 多版本管理
    • 5. Python的基础知识
    • 6. Python的内存管理
  • 1. 基本语法
  • 2. 内置数据结构
    • 1. 列表
    • 2. 元组
    • 3. 字符串
    • 4. bytes与bytearray
    • 5. 集合 (set)
    • 6. 字典
  • 3. 操作
    • 迭代与迭代器
    • 封装与解构
    • 解析式与生成器
    • 切片操作
    • del操作
  • 4. 函数
    • 1. 函数的定义与调用
    • 2. 函数的参数与参数解构
    • 3. 函数的返回值
    • 4. 函数的作用域
    • 5. 闭包
    • 6. 默认值的作用域
    • 7. 递归
  • 5. 高阶函数
    • 0. 柯里化
    • 1. 高阶函数
    • 2. 装饰器
    • 3. 参数注解
  • A. 内建函数
  • B. 算法
    • 1. 排序
      • 1.冒泡法排序
      • 2. 简单选择排序
      • 3. 二元选择排序
  • C. 模块
    • collections
    • copy
    • datetime
    • keyword
    • math
    • time
  • D. 习题
    • 九九乘法表
    • 打印菱形、三角形、闪电
    • 斐波那契数列
    • 求素数
    • 猴子吃桃
    • 杨辉三角
    • 转置矩阵
Powered by GitBook
On this page
  • 列表是什么
  • 线性结构的内存模型
  • 列表
  • 链表
  • 队列
  • 栈
  • 列表的定义(初始化)
  • 列表的访问
  • 列表的查询与判断
  • index
  • count
  • in
  • 列表的修改
  • 索引访问修改
  • 增加与插入元素
  • 删除元素
  • 反转列表
  • 列表排序
  • 列表的复制(深浅拷贝)

Was this helpful?

  1. 2. 内置数据结构

1. 列表

列表是什么

列表是一个由若干元素(不限制种类的对象)顺序组成的线性结构。 列表在内存中是顺序存放的。 列表是可索引、可迭代、可变的序列。 列表用[]表示。

线性结构的内存模型

列表

顺序连续存放,索引访问

链表

在内存中非连续存放

队列

顺序连续存放,只能对两端操作

栈

先进后出,后进先出

列表的定义(初始化)

空列表:

  • lst = list()

  • lst = []

非空列表:

  • lst = [1,2,'a',[(1,2,'d')]]

  • lst = list(range(5))

列表的访问

Python中对列表使用索引(下标)访问。 Python中支持正、负两种索引。 正索引从左开始,第一个是0;负索引是从右开始,最右一个是-1。 列表可以简单理解为从左到右排列的,左头右尾。 如果索引超界,会引发IndexError。

列表的查询与判断

index

L.index(value, [start, [stop]])

返回一个数字,在start到stop区间内value第一次出现的索引。 时间复杂度O(n)

count

L.count(value)

返回一个数字,在list中value一共出现了多少次。 时间复杂度O(n)

in

value in L

返回一个布尔型,value是否在列表中出现 时间复杂度O(n)

列表的修改

索引访问修改

L[0]=1

返回一个None 时间复杂度O(1)

增加与插入元素

append

L.append(value)

返回一个None 时间复杂度O(1)

insert

L.insert(index, object)

将object插入index位置 返回一个None 时间复杂度O(n)

extend

L.extend(可迭代对象)

在列表后面追加可迭代对象的内容。

删除元素

remove

L.remove(value)

将value从列表中删除(1个) 返回None 如果没有value,返回ValueError。 时间复杂度O(n)

pop

L.pop([index]])

将索引index的从列表中删除,不指定index则删除最后一个 返回被删除值 时间复杂度O(n)或者O(1)

反转列表

L.reverse()

返回None,修改原列表

列表排序

L.sort(key=None, reverse=False)

用key操作之后排序,reverse表示是否反转

列表的复制(深浅拷贝)

Previous2. 内置数据结构Next2. 元组

Last updated 6 years ago

Was this helpful?

copy