字典(dict):以键值对的方式存在,以大括号为标志、在字典里面键是不能修改的,值可以修改
语法格式:字典名 = {key1:value1,key2:value2,.......}
note:是无序的类型,建必须唯一,值不必。索引是以键为下标,不能索引键对应的值,键不能为列表
特点:
1.键值之间必须用冒号(:)隔开
2.项与项之间必须用逗号(,)隔开
3.字典中的键必须是唯一的,而值可以是重复的
1.字典赋值和创建字典
2.字典的基本操作
3.映射类型的操作符
4.映射的相关函数
5.字典的方法
一、映射:输入和输出对应,字典是python里面最强大数据类型之一
键和值是一一对应的,就是一种映射类型、哈希值
特点:键是唯一的、值可以是不唯一的,可以吧字典看成一个容器,满足与索引,切片,增删改查,可以储存无数
个python对象类型,列表是不可以作为键的字典和序列区别:
1.索引的方式不同
2.存取和访问的数据类型不同
3.值最好是以字符串的形式存在(虽然可以是各种类型的数据)
4.字典是无序排列
5.由键值直接映射到值
dict()函数-可以将序列转换为字典
变量名1=[(key,values),(),()]
语法格式: 变量名2 = dict(变量名1)
查看键的值:字典名.[键名]
修改字典:找到修改数的下标,然后修改
语法格式:字典名[键名]=值
字典中重复的键,后面的键会把前面的键给覆盖
添加一个新元素的方法:
语法格式:字典名[新的键] = 新的值
note:如果输人的元素名是新的就会添加到字典之中
删除字典:删除指定字典或者整个字典
note:删除整个字典后无法访问
语法格式:del 字典名[键名]
pop方法:
语法格式:字典名.pop(键名) 弹出值的键名
note:1.键不能出现第二次,否则同一个键会赋值二次,系统会选择最后一次的值
2.键不能用列表,可以是字符串、数字、元组等
len函数-用于计算字典元素的个数或者键的总数
语法格式:len(字典名)
type函数-用于返回字典类型或者字典元素类型
语法格式:type(字典名)或者type(字典名[元素名(键的名)])
dict与list的特点:
dict---查找与插入速度快,不会随着key的增加而变慢
缺点:内存占用、浪费大
list---查找与插入速度慢随着key的增加而变慢
缺点:内存占用、浪费小
字典的方法;
clear()方法-用来删除字典内的所有的元素
语法格式:字典名.clear()
copy()方法-复制一个字典
语法格式:字典名2 = 字典名1.copy()
fromkeys()方法-用来创建一个新的字典,seq为字典的键,value为字典键对应的初始值
语法格式:字典名1 = dict.fromkeys(seq,value=None)
note:如果fromkeys给键建立新的字典,那么键对应的值为None
如果seq是字符串,会切片
如果seq是列表,会直接输出
get()方法-返回指定的值,否则就返回默认值None
语法格式:字典名.get(key,defaull=None)
note:key代表键,default代表键对应的值,如果没有就返回默认值None
key in dict方法-判断字典的键是否在字典之中 在就返回True,否则返回False
语法格式:元素值 in 字典名
a. 变量名.has_key()方法,比如:adict.haskey('name')有--》True,无--》False
b. in、not in 比如:'name in adict 有--》True,无--》False
items()方法-以列表嵌套返回元组数组
语法格式:字典名.items()
setdefault()方法-获取与键相关的键值,如果键不在字典之中就会添加该键并将值设为默认值
语法格式:字典名.setdefault((key,default=None)或者(键,键值))
note:key代表查找的键值,default代表键不存在的时候设置为默认值。该方
法无返回值
update方法-把字典2更新到字典1之中
语法格式:字典名1.update(字典名2)
note:如果相同的key会覆盖
values()方法-以列表的形式返回字典中所有值,返回列表中的元素可以包含重复的元素
语法格式:list(字典名.values())
keys()方法-以列表返回一个字典的所以的字
语法格式:字典名.keys()
cmp()方法;比较长度
语法格式:cmp(字典名1,字典名2)
note:字典名1 > 字典名2 返回1
字典名1 < 字典名2 返回-1
字典名1 = 字典名2 返回0 (要一模一样,键与值一样)
映射相关函数:
1.len():查看长度
2.工厂函数dict() 语法格式:dict(键值对)创建一个字典