本文介绍关联容器,关联容器主要包括字典类型 (dictType)和集合类型(set)。
一、字典类型
1.字典的创建
字典的创建使用大括号{}的形式,字典中的每一个元素都是一对,每对包括key和value两个部分,中间用冒号:隔开。字典是一种可变的类型,可以存储任意类型的数据。
(1)用dict()创建一个空字典
a = dict()
(2)通过映射组对生成dict(最一般最传统的创建方法)
a = {1:"one",2:"two"}
(3)通过输入参数方法(参数格式为name = value)创建字典
dict(one = 1,two = 2)
得到{'two':2,'one':1}
(4)通过序列容器生成队列(序列容器的元素必须是两个元素的列表或元组)
dict([(1,'one'),(2,'two')])
得到{1:'one',2:'two'}
PS:(1)字典中的键不能重复,当有键(key)相同的时候,自动覆盖之前的键值对
(2)只能用不可变的类型作为字典的键(eg: list str tuple)
2.字典的操作
(1)访问字典元素:用key值作为下标访问value值
(2)各种比较运算:==,!=python3不支持字典的比较
(3)清空字典:dict.clear()
(4)删除字典的某一项:dict.pop(key1)
(5)序列访问方法:dict.items()返回一个列表,列表中是(key,value)的元组
dict.keys()返回一个列表,列表中是以key为元素的列表
dict.values()返回一个列表,列表中是以value为元素的列表
字典 VS 列表
首先,字典和列表都是可变的对象
但是,1.二者的索引方式不同:列表用整数索引,字典用键索引
2.字典的存储是无序的,列表却是有序的
3.字典的插入,删除,修改的速度可能会快于列表
二、集合类型
1.特点:
- 集合是可变的(也有不可变的)
- 集合是无序的
- 集合内的数据对象都是唯一的(不能重复多次)
- 集合内的元素必须是不可变的对象,不可以包括(list,dict,set)
2.集合的创建
(1)用大括号{}直接创建集合
a = {1,2,3}
a = {'1','2','3'}
(2)用set()创建可变的集合
set()括号中可以是“列表”,“元组”,“集合”
a = {1,2,3}
b = set([1,2,3])
c = set((1,2,3))
d = set({1,2,3})
print(a)
print(b)
print(c)
print(d)
结果:
{1, 2, 3}
{1, 2, 3}
{1, 2, 3}
{1, 2, 3}
(3)用frozenset()创建不可变的集合
基本同set()但是输出结果是带着frozenset({...})
2.集合的方法和运算
(1)集合的并 用union()方法或者|运算
(2)集合的交 用intersection()方法或&运算
(3)集合的求差 用difference()方法或者用 - 运算
(4)集合求补 用symmetric_difference()方法或者^运算
(5)判断子集 用issubset()方法或者<=运算