![6963a4fcdada18230ca6a5748c0a94e5.png](https://i-blog.csdnimg.cn/blog_migrate/8b98d76df1260e08b57ec94e42632c80.jpeg)
数据容器(数据结构)
前面我们介绍了 Python 最底层的基本数据类型:布尔型、整型、浮点型以及字符串型。
本章将要提到的 数据结构(容器) 。在这一章中,我们会把之前所学的基本 Python 类型以更为复杂的方式组织起来。这些数据结构以后会经常用到。在编程中,最常见的工作就是将数据进行拆分或合并,将其加工为特定的形式
大多数编程语言都有特定的数据结构来存储由一系列元素组成的序列,这些元素以它们所处的位置为索引:从第一个到最后一个依次编号。前一章已经见过 Python 字符串了,它本质上是字符组成的序列。
![ad42c9992b53f73b3754feef688e88b8.png](https://i-blog.csdnimg.cn/blog_migrate/e60f836eaeca517985b92d3b06222b60.jpeg)
本文内容
- 列表
- 元组
- 字典
- 集合
知识点回顾
- Python 中数据类型可以分为 数字型 和 非数字型
- 数字型
- 整型 (
int
) - 浮点型(
float
) - 布尔型(
bool
)- 真
True
非 0 数
—— 非零即真 - 假
False
0
- 真
- 非数字型
- 字符串
- 在
Python
中,所有 非数字型变量 都支持以下特点: - 都是一个 序列
sequence
,也可以理解为 容器 - 取值
[]
- 遍历
for in
- 链接
+
和 重复*
- 切片
列表(list)
列表是最常见的一种数据形式,是一种 有序 的 序列 ,可以随时添加和删除其中的元素。
列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时。与字符串不同,列表是可变的。你可以直接对原始列表进行修改:添加新元素、删除或覆盖已有元素。
列表创建
List
(列表) 是Python
中使用 最频繁 的数据类型,在其他语言中通常叫做 数组- 专门用于存储 一串 信息
- 列表用
[]
定义,数据 之间使用,
分隔 - 列表的 索引 从
0
开始 - 索引 就是数据在 列表 中的位置编号,索引 又可以被称为 下标
![320f11ab147c3d26e9231291b1d8cfb1.png](https://i-blog.csdnimg.cn/blog_migrate/d59bd9fe25a97ed96283d90c0a2225b9.jpeg)
注意:从列表中取值时,如果 超出索引范围,程序会报错
# 用 list 创建空列表
array = list()
array
# 用 [] 创建空列表
array2 = []
array2
创建一个列表
array3 = [1, 2, 3, 4, 5, 6, 7]
array3
# 列表中可以存放多种数据
array4 = [1, 2, 3, True, False, int, "str", array]
array
类型转化
# 使用list()将其他数据类型转换成列表
s = 'hello world !'
list(s)
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', ' ', '!']
列表取值
使用[offset]获取与修改元素
# 直接获取
s[0]
s[-1]
根据索引位置修改内容
array3[0] = 5
列表切片
切片是返回一个新的内容
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。
格式:[start:stop:step]
`[起始值:结束值:步长]`
- start: 起始索引,从0开始,-1表示结束
- stop:结束索引
- step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值
arr = list(range(10))
# 指定区间切片
arr[0:5]
# 从头开始切片
arr[0:5]
# 切片到末尾
arr[0:]
# 省略参数切全部内容
arr[:]
# 逆序切片
arr[-12:-7]
# 指定步长切片
arr[0:5:1]
arr[0:5:2]
列表常用操作
- 在
ipython
中定义一个 列表,例如:l= list()
- 输入
l.
按下TAB
键,ipython
会提示 列表 能够使用的函数如下:
append() count() insert() reverse()
clear() extend() pop() sort()
copy() index() remove()
在变量后面输入
.
,然后选择针对这个变量要执行的操作,记忆起来比函数要简单很多
| 分类 | 关键字 / 函数 / 方法 | 说明 | | ---- | -------------------- | ------------------------ | | 增加 | append() | 添加元素至尾部 | | | insert() | 在指定位置插入数据 | | 删除 | clear() | 清空列表 | | | pop() | 默认弹出末尾数据 | | | pop(index) | 弹出指定索引数据 | | | remove(data) | 移除指定数据 | | 修改 | extend(列表2) | 将列表2 的数据追加到列表 | | 查询 | count(数据) | 统计数据出现的次数 | | | index(内容) | 查询内容所在位置 | | 其他 | copy() | 将列表复制一份 | | | sort() | 排序 | | | reverse() | 逆序列表 |
案例:
In [7]: arr = list(range(1, 5))
# 添加元素到末尾
In [8]: arr.append(5)
In [9]: arr
Out[9]: [1, 2, 3, 4, 5]
# 插入元素到第一个
In [10]: arr.insert(0, 0)
In [11]: arr
Out[11]: [0, 1, 2, 3, 4, 5]
#