Python—容器

容器(container、collection)
存储大量数据的一种数据类型
1、为什么使用容器
一个容器包含了完整的运行时环境:除了应用程序本身之外,这个应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入了一个称为容器镜像的包中。

2、python中提供了哪些容器?
list——列表
set——集合
tuple——元组
dict——字典

列表:

python提供的列表这种容器,是一种线性结构的存储空间
数组:内存中一块连续的内存空间
优点:查询速度,通过索引迅速检索对应的值
缺点:增删改的效率较低
链表:不是连续内存
优点:增删改的效率相对于数组较高
缺点:查询速度慢
python中的列表容器就是基于双向链表结构设计的(java中LinkedList)

列表的定义:
列表是Python中最基本的数据结构
列表中的每个元素都分配一个位置,一个元素对应一个位置
第一个索引是0,第二个索引是1,依此类推
弱数据类型语言的特点:

1、 ls = []
 2、 ls2 = list()
 3、 list3 = list([1,2,3,4,5,6,7]) # list3 =[1,2,34,4,5,6]

访问list的元素(element)通过下标访问,注意:从0开始
也可以通过下标修改元素的值
也可以修改元素的值

遍历list:

for i in list:

list的常见方法:

[‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]
 |-- append(元素) ——在列表尾部追加一个元素
 |-- insert(索引位置, 元素) ——在特定的位置,添加元素
 |-- clear() ——清除列表
 |-- count(element) —— 统计元素出现的次数
 |-- index(element) —— 查询元素首次出现索引,如果不存在,则抛出异常
 |-- remove(element) —— 通过元素移除对应的元素
 |-- pop([index]) —— 默认删除最后一个元素,如果指定了位置,则删除对应位置的元素
 |-- reverse() —— 翻转列表顺序
 |-- copy() —— 浅拷贝对象(堆对象的复制)
 |-- extend(可迭代对象) —— 合并列表
 |-- sort() —— 排序

python 容器哪个快 python的容器都有哪些?_元组


python 容器哪个快 python的容器都有哪些?_元组_02

Set(集合):

也是python提供的一种容器,特点:无序、元素不能重复

1、怎么定义set集合

s = {元素1, 元素2…}
 s = set()
 s = set({元素1, 元素2…})
 s = set([元素1, 元素2…]) # 将list转换为set对象
 ls = list({元素1, 元素2…}) # 将set转换为list对象

2、通过官方提供的方法来操作

[‘add’, ‘clear’, ‘copy’, ‘difference’, ‘difference_update’, ‘discard’,
 ‘intersection’, ‘intersection_update’, ‘isdisjoint’, ‘issubset’,
 ‘issuperset’, ‘pop’, ‘remove’, ‘symmetric_difference’,
 ‘symmetric_difference_update’, ‘union’, ‘update’]|-- add(元素) —— 添加
 |-- clear——清除列表
 |-- copy——复制列表
 |-- remove —— 通过元素本身移除,如果元素不存在,则抛出异常
 |-- discard —— 通过元素本身移除,如果元素不存在,则什么都不做
 |-- pop() —— 随机移除元素
 |-- intersection —— 交集
 |-- union —— 并集
 |-- difference —— 差集
 |-- update —— 合并集合

python 容器哪个快 python的容器都有哪些?_python_03


python 容器哪个快 python的容器都有哪些?_python 容器哪个快_04

元组(tuple):

元组是一种不可变的数据类型。
元组中的元素不允许被修改和改变。

元组的定义:
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

t = () ——定义元组,但是不推荐这么使用,因为元组不可变

t = (“春”, “夏”, “秋”, “冬”) ——建议定义时初始化值

t = tuple(())——查看数据类型

注意:三种容器都可以使用对应的函数完成转换

python 容器哪个快 python的容器都有哪些?_元组_05

字典(dict):

dictionary,是一种使用key-value键值对的结构存储数据的
python中key不能重复,否则会覆盖数据
key的类型只能是字符串,value类型任意

如何访问字典值:
使用字典中的key获取key对应的值
d[“name”] —— 获取name对应的值,如果该key不存在,则抛出异常
d.get(“age”) —— 也可以使用get方法,如果key不存在,则返回None

字典的常用方法:

‘clear’, ‘copy’, ‘fromkeys’, ‘get’, ‘items’, ‘keys’, ‘pop’, ‘popitem’, ‘setdefault’, ‘update’, ‘values’]
|-- clear——清除列表
 |-- copy——复制列表
 |-- fromkeys() ——将其他可迭代对象转换为字典
 |-- get——显示列表
 |-- items() ——迭代出每一个键值对[(),()]
 |-- keys() ——列表的key
 |-- value()——列表的值
 |-- setdefault() ——新增key和value
 |-- popitem —— Pairs are returned in LIFO (last-in, first-out) order
 |-- pop(key) —— 通过key,删除key对应的键值对

python 容器哪个快 python的容器都有哪些?_数据类型_06


python 容器哪个快 python的容器都有哪些?_数据类型_07