目录
一.内置容器(可迭代对象)-常见的线性表
1.array数组:连续内存空间
2.链表:可以是非内存内存空间,常见有单向链表,双向链表
3.stack栈:先进后出(FILO),后进先出(LIFO)
4.queue队列:先进先出(FIFO),后进后出(LILO)
二.容器
1.list,列表
底层使用的一个双向链表结构
(1).定义列表
ls = [] ls = [12,3,3,3]
list全局函数 list(可迭代对象)
元素(element):指的是每一个容器中的值
如何访问和设置元素:使用下标来访问和设置
ls[2] ls[3] = 新值
len()全局函数,可以获取可迭代对象的元素个数
(2).遍历列表
while循环,通过下标来依次遍历
for迭代遍历
(3).常见方法
dir() #打印
help() #查找文档说明
| -- append (新元素) #在尾部追加新的元素
| -- insert (index,新元素) #在固定位置插入新的元素
| -- extend (列表) #合并列表
| -- pop ([index=-1]) #append对应,会默认移除最后一个元素
| -- remove (元素) #移除对应的元素
| -- clear () #清空
| -- index (元素) #位置索引,从0开始
| -- count (元素) #计数
| -- copy () #拷贝列表对象,本质是一种浅拷贝
| -- reverse () #反转列表
| -- sort () #数字排序
2.set,集合
hash table:无序,无重复元素
(1).定义set
s = {1,2,3,3,}
s = {} #注意:这样定义的是错误的集合,这是一个dict
set全局函数 set(可迭代对象)
(2).遍历set
for迭代遍历
set是无序的!!!所以没有下标,不能使用while循环遍历
(3).常见方法
| -- add(新元素) #添加新元素
| -- clear() #清空
| -- discard() #移除元素
| -- remove() #移除元素,不存在提示
| -- update() #合并两个集合成为一个新的集合
| -- union() #合集
| -- difference() #差集
| -- intersection() #交集
| -- pop() #随机删除
3.tuple,元组
一组不变的数据、不可变数据类型
(1).定义tuple
t = ()
tuple全局函数 tuple(可迭代对象)
(2).注意
因为不可变,所以在创建之初,一定要将值确定下来
元组是有序的,所以可以使用下标来访问元素,但是不能修改元素
(3).常见方法
| -- index() #位置索引
| -- count() #计数
4.dict,字典
底层也是hash table
(1).定义dict
d = {"name":"Chang An","age":"20"}
(2).遍历字典
for key in d.keys():
print(key,d[key])
for key in d:
print(key,d[key])
for i in d.items():
print(i[0],i[1])
for (key,value) in d.items():
print(key,value)
for key,value in d.items():
print(key,value)
(3).常见方法
虽然可以直接使用del来删除键值对,但是不建议这么使用
| -- clear() #清空
| -- copy() #拷贝列表对象,本质是一种浅拷贝
| -- get() #获取key值
| -- pop() #删除指定的键并返回相应的值
| -- popitem() #删除LIFO并返回一个二元组(键,值)对
| -- values() #一个提供D值视图的对象
| -- keys() #一个集合类对象,提供了D的键的视图
| -- items() #一个类似集合的对象,提供了D元素的视图