python中有4种容器:
list,tuple,set,dictionary
1.list
特点:
-
一组有序的项目集合,可变的数据类型,可增删改查。
-
列表围绕方括号[]进行数据集合,不同成员以,分隔。
-
列表可以包含任何数据类型或另一个列表,不需要相同的类型。
-
列表可以通过序号访问成员。
特征:
中括号包裹,逗号隔开元素,元素类型任意,可以嵌套,可以用 index 进行读写
注意:
- 使用方括号[]存放数据元素
- 第一个元素的索引是0,也就是索引从0开始
- len函数可以计算列表的长度(多少个索引)
- 可以将列表想象成SQL中的表,具有增删查改这四种操作
2.tuple
特点:
- 有序的
- 每个元素不可以被更改,不可以增加,不可以删除
- 元组每个元素可以是任何数据类型
特征:
小括号包裹,逗号隔开元素,元素类型必须统一,可以嵌套但是满足类型统一,可以用 index 进行读,但不可写,更不可增删
注意:
- Tuple 里面的元素不支持复制修改
- Tuple 可以切片,也可以拼接
- Tuple 里面的元素如果是list或dict这些可以修改的值,那这些值里面的内容可以修改
- Tuple 中只有单个元素时要加逗号
常用方法:
count
index
3.set
特点:
-
确定性:集合中的元素必须是确定的;
-
互异性:集合中的元素互不相同,如:集合A={1,a},则a不能等于1)
-
无序性:集合中的元素没有先后之分,如:{3,4,5}和{3,5,4}算作同一个集合
特征:
大括号包裹,逗号隔开元素,元素类型任意,可以嵌套,可以用index读写。基本和List一致
注意:
set没有办法使用while 遍历数据,只能使用for循环
set的元素无法通过下标访问
常用方法:
|-- add(ele) # 添加元素
|-- clear() # 清空列表
|-- copy() # 浅拷贝
|-- difference(set) # 差集
|-- intersection(set) # 交集
|-- union(set) # 并集
|-- update(set) # 合并两个集合
|-- discard(ele) # 移除元素,如果该元素不存在,则什么都不做
|-- remove(ele) # 移除元素,如果该元素不存在,则抛出异常
|-- pop() # 描述 pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
4.dictionary
特点:
- dict中的每一个元素都是k:v格式的(键值对格式)
- dict不支持使用index获取元素,只能通过key获取value
- dict的key不能重复,是唯一的,不可修改,key的类型必须是不可变对象(即基本数据类型和 tuple)
- 如果字典中包含相同key的键值对,那么value值会发生覆盖
- dict中value的类型可以是任意的,可以重复,可以修改
- dict中,会将True和1,False和0视作相同的key值
查询速度不会随着元素的增多而变慢
特征:
大括号包裹,逗号隔开元素,元素构成必须统一格式(由分号分隔的两部分,前半部分必须是字符串,后半部分任意),key一定是字符串,如果发现某个元素没包含冒号,则会被当做Set处理,又因为有些元素包含分号,而Set允许元素中出现冒号(字符串中的不算),所以此时会报错
常用方法:
|-- clear() # 用于删除字典内所有元素
|-- copy() #返回一个字典的浅复制
|-- get(key, [defaul])
|-- setdefault() # 返回指定 key 对应的 value,如果该键值对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value
|-- keys() # 获取所有的键
|-- values() # 以列表返回字典中的所有值
|-- items() # 返回一个字典的拷贝列表
|-- pop(key) # 通过key,删除键值对
|-- popitem() # 随机返回并删除字典中的最后一对键和值
|-- update() # 合并字典 等价于 {**对象, **对象}
|-- fromkeys(iterable) # 生成一个新的字典对象