1:什么是字典
字典是一个无序的。也算是成对存在的。
键经过哈希函数进行计算,然后得出他的地址值,所以这字典存储的内容地址式不能变的
2:字典的原理
字典查找方便,根据键进行查找
3:字典的创建与删除
'''字典的创建'''
#使用花括号{}
d={'姓名':'毛腾凯','身份':'社会主义接班人','年龄':'19岁'}
print(d)
#使用内置函数进项创建
d=dict(姓名='maotengkai',特点='长得帅')
print(d)
#创建空字典
d={}
print(d)
print(type(d))
{‘姓名’: ‘毛腾凯’, ‘身份’: ‘社会主义接班人’, ‘年龄’: ‘19岁’}
{‘姓名’: ‘maotengkai’, ‘特点’: ‘长得帅’}
{}
<class ‘dict’>
4:字典的查询操作
获取字典中数据元素:
方法一:字典名[字典中的键]一半字典中的键都是字符串,所以带’’
方法二:字典名.get('键’):可以输出这个字典里面这个键所指向的值,在get方法里还可以输出如果查找不到报的错误信息。如果没有查找到,会输出报错内容,并且程序不报错,并且有一个默认的值,None,也可以自己设置
字典名.get(’ 字典的键 ',‘错误提示’)
#获取字典中数据元素
#方法一:字典名[字典中的键]一半字典中的键都是字符串,所以带''
d={'姓名':'毛腾凯','身份':'社会主义接班人','年龄':'19岁'}
print(d['姓名'])
print(d['身份'])
print(d['年龄'])
print(d['姓名'],d['身份'],d['年龄'],end='')
#方法二:字典名.get('键’):可以输出这个字典里面这个键所指向的值
print('---------------------方法2--------------------')
print(d.get('年龄'))
print(d.get('姓名'))
添加end=’ '可以防止她进行换行,如果不写,那就会下一行是空格
5:字典元素的增。删。改操作
这里的增删都是一对一对讲的,键-------值为一对
1,字典的增加:直接对键进项赋值,
字典名[‘键’]=这个键里面存的值
2,字典的删除:
del 字典名[’ 键’]
3,字典的修改:
直接赋值给先要修改的键
字典名[‘键’]=想要修改的值
4,清空字典:
字典名.clear()
把字典里面的数据清空,只留一个空字典
#字典的删除与修改,增加
s={‘张三’:100,‘李四’:89}
print(s)
#增加:
s[‘王五’]=99
print(s)
#修改
s[‘王五’]=100
print(s)
#删除
del s[‘张三’]
print(s)
#清空里面的数据,但是字典还存在。
s.clear()
print(s)
5,判断数据元素在不在字典里面
print('张三’in s)
print(‘张三’ not in s)
6,获取字典里面所有的键,需要配合输出函数进行输出
字典名.keys()
7,
8,获取所有的键:字典名.keys()
9,获取所有的值:字典名.values()
10,获取所有的键与值:字典名.items()
#获取所有的键
print(s.keys())
获取所有的值
print(s.values())
获取所有的键和值
print(s.items())
11.字典的遍历:
for i in 字典名:
print(i) :输出的式字典的键
print(字典名[' i ']) :输出字典的值
print(字典名.get(’ i ')) 输出字典的值
2.字典的特点
1,字典中所有元素都是一个key -value对,key不允许重复,val允许重复。
2,字典中的元素式无序的
3,字典中的key必须是不可变的对象
4,字典也可以根据需要动态地伸缩
5,字典也会浪费较大的内存,是一种使用空间换取时间的数据结构
6:字典的推导式
两个列表名 i,t
分别写好两个列表
列表生成式:
生成的列表名= { i : t for i, t in zip( i, t) }
items=['vegtable','frust']
price=[10,20]
s={items :price for items,price in zip(items,price)}
print(s)
#如果不对应的话,则按少的算
i=['毛腾凯','年龄','爱好','的帅哥']
t=['是','小','女孩']
s={i:t for i,t in zip(i,t)}
print(s)
‘vegtable’,‘frust’]
price=[10,20]
s={items :price for items,price in zip(items,price)}
print(s)
#如果不对应的话,则按少的算
i=[‘毛腾凯’,‘年龄’,‘爱好’,‘的帅哥’]
t=[‘是’,‘小’,‘女孩’]
s={i:t for i,t in zip(i,t)}
print(s)