概述
5.1字典作用:可以轻松查到某个特定的键,从而通过键找到对应的值。
键和字典区别:
键是唯一的,不可变的,可以是字符串,元组,数字,不能是list列表。
值是可变的,不是唯一的,值可以是任何数据类型。
5.2创建和使用字典
5.2.1dict函数(可以使用dict函数将序列映射为字典。)
(dict函数可以利用关键字参数创建字典。)
5.2.2字典的基本操作
1.修改字典
2.删除字典元素(del命令)
3.键的特性
(1)不允许同一个键出现两次。若出现两次相同的键后一个值会被记住。
(2) 键必须不可变,可以用数字,字符串或元组充当,不能用列表,否则会提示类型错误。
4.len函数(用于计算字典元素的个数,即键的总数。)
5.type函数(返回输入的变量类型。)
5.2.3字典的格式化字符串(在每个转换说明符中的%字符后加上用()括起来的键,再跟上其他说明元素。)
5.2.4字典和列表的区别
list:1:查找和插入的时间随着元素的增加而增加。
2:占用空间小,浪费内存小。
字典:1:查找和插入的速度极快,不会随着key的增加而变慢。
2:需要占用大量内存,内存浪费多。
,,,所以,dict是用空间换取时间,dict适用于高速查找。dict内部存放的顺序和键放入的顺序没有关系。
5.3字典方法
5.3.1clear()方法(用于删除字典内的所有项。)
例子:
5.3.2copy()方法(返回一个具有相同键/值对的新字典,将字典复制给另一个变量。)
student={'小萌':'1001','小智':'1002','小强':'1003','小张':'1006'}
st=student.copy()
st['小智']='2003'
print('复制后的st:',st)
print('原始字典:',student)
复制后的st: {'小萌': '1001', '小智': '2003', '小强': '1003', '小张': '1006'}
原始字典: {'小萌': '1001', '小智': '1002', '小强': '1003', '小张': '1006'}
copy()是属于浅复制,不改变原来的原始字典,。
5.3.3fromkeys()方法(用于创建一个新字典。)
fromkeys()方法使用给定的键建立新字典,每个键默认对应的值为None.
dict.fromkeys(seq[,value])
dict:字典
seq:字典键值列表
value:可选参数
seq=('name','age','sex')
info=dict.fromkeys(seq)
print('新的字典为:%s'%info)
info=dict.fromkeys(seq,10)
print('新的字典为:%s'%info)
结果:
新的字典为:{'name': None, 'age': None, 'sex': None}
新的字典为:{'name': 10, 'age': 10, 'sex': 10}
5.3.4get()方法
get()方法 返回指定键的值,如果值不在字典中,就返回默认值。
语法:dict.get(key,default=None)
dict:字典;key:字典中要查找的键;default:指定键的值不存在返回默认值。
student={'小萌':'1001','小智':'1002'}
print('小萌的学号为:%s'%student.get('小萌'))
结果:
小萌的学号为:1001
实例:
>>>st={}
>>>print(st['name'])
结果:
Traceback (most recent call last):
File "D:/pycharm/1.2.py", line 2, in <module>
print(st['name'])
KeyError: 'name'
>>>st={}
>>>print(st.get('name'))
结果:
None
以其他方法试图访问字典中不存在的项时会报错,到那时使用get()方法不会,会返回NONE.
st={}
print(st.get('name','未指定'))
结果:
未指定
5.3.5 key in dict方法
in操作符用于判断键是否存在于字典中,如果健在字典中就返回true,不在返回false。
语法:key in dict
dict:字典;key:字典中要查找的键。
student={'小萌':'1001','小智':'1002'}
print('小萌在student字典中:%s' % ('小萌' in student))
结果:
小萌在student字典中:True
student={'小萌':'1001','小智':'1002'}
print('小强在student字典中:%s' % ('小强' in student))
结果:
小强在student字典中:False
5.3.6 item()方法
以列表返回可遍历的(键/值)元组数组。
语法:dict.items()
dict:字典,该方法不需要参数。结果返回可遍历的元组数组。
student={'小萌':'1001','小智':'1002'}
print('调用items方法的结果:%s' % student.items())
结果:
调用items方法的结果:dict_items([('小萌', '1001'), ('小智', '1002')])
5.3.7 keys()方法
以列表返回一个字典的所有键。返回值也是一个元组数组。,数组包括所有键。
语法: dict.keys()
student={'小萌':'1001','小智':'1002'}
print('字典中所有的键:%s' % student.keys())
结果:
字典中所有的键:dict_keys(['小萌', '小智'])
5.3.8 setdefault()方法
与get()方法类似,用于获得与给定键相关联的值,如果键不存在,就会添加键并将值设为默认值。
语法:dict.setdefault(key,default=None)
dict:字典;key:查找的键值;default:键不存在时设置的默认键值,该方法没有任何返回值。
student={'小萌':'1001','小智':'1002'}
print('小强的键值为:%s'% student.setdefault('小强'))
结果:
小强的键值为:None
student={'小萌':'1001','小智':'1002'}
print('小智的键值为:%s'% student.setdefault('小智'))
结果:
小智的键值为:1002
student={'小萌':'1001','小智':'1002'}
print('小强的键值为:%s'% student.setdefault('小强'))
print('student新键值为:%s'%student)
结果:
小强的键值为:None
student新键值为:{'小萌': '1001', '小智': '1002', '小强': None}
如果不适用默认值:
student={'小萌':'1001','小智':'1002'}
print('小zhang的键值为:%s'% student.setdefault('小zhang','1007'))
结果:
小zhang的键值为:1007
5.3.9 update()方法
用于把字典dict2的键/值对更新到dict里。
语法:dict.update(dict2)
dict:字典;dict2:代表要添加到dict中的字典;该方法没有任何返回值。
student={'小萌':'1002','小张':'1003'}
student1={'王浩':'3001','张吴':'5001'}
student.update(student1)
print('新字典为:%s' % student)
结果:
新字典为:{'小萌': '1002', '小张': '1003', '王浩': '3001', '张吴': '5001'}
student={'小萌':'1002','小张':'1003'}
student1={'王浩':'3001','张吴':'5001'}
student.update(student1)
print('新字典为:%s' % student)
student2={'小萌':'3333'}
student.update(student2) #对相同项覆盖
print('新新字典为:%s' % student)
结果:
新字典为:{'小萌': '1002', '小张': '1003', '王浩': '3001', '张吴': '5001'}
新新字典为:{'小萌': '3333', '小张': '1003', '王浩': '3001', '张吴': '5001'}
5.3.10 values()方法
以列表的形式返回字典中所有值。与返回键的列表不同,返回的列表中可以包含重复的元素。
语法:dict.values()
dict:字典;该方法不需要参数,返回结是字典中的所有值。
student={'小萌':'1002','小张':'1003','小七':'3400'}
print('student字典中所有值为:%s'%list(student.values()))
结果:
student字典中所有值为:['1002', '1003', '3400']
#1.创建一个字典,并打印出字典内容。
student={'jack':'110','rose':'120','tom':'130'}
print('输出student字典:%s' % student)
#自定义一个字典,对字典中某一个值进行修改
student={'jack':'110','rose':'120','tom':'130'}
student['jack']='220'
print('修改后的字典:%s' % student)
#自定义一个字典,删除字典中某个元素,并修改另外某个元素
student={'jack':'110','rose':'120','tom':'130'}
del student['jack']
student['tom']='340'
print('修改后的字典:%s' % student)
#定义一个字典,打印出字典的长度,清空字典,再打印字典的长度;
dict={'jack':'1001','tom':'1002','rose':'1003','helen':'1004'}
print('字典的长度: %s' % len(dict))
dict.clear()
print('字典的长度:%s' % len(dict))
#定义一个字典,对字典进行浅拷贝和深拷贝,并对比两者异同。
dict={'jack':'1001','tom':'1002','rose':'1003','helen':'1004'}
st=dict.copy()
print('浅拷贝:%s' % st)
#定义一个字典,打印其中的某个元素。
dict={'jack':'1001','tom':'1002','rose':'1003','helen':'1004'}
dict.get('helen')
print(dict.get('helen'))
#定义一个字典,对字典进行便利,打印对应的key,value值。
dict={'jack':'1001','tom':'1002','rose':'1003','helen':'1004'}
print(dict)
print('遍历结果:%s' % dict.items())
最后
以上就是曾经鲜花为你收集整理的python3.7从零开始学【第五章(字典)】的全部内容,希望文章能够帮你解决python3.7从零开始学【第五章(字典)】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复