1.字典的创建
-1 key-value不同类型的创建
-2 字典的嵌套
-3 工厂函数
2.字典的特性
-1不支持索引、切片;并且字典的重复、连接是无意义的(因为key是唯一的)
-2成员操作符:判断的是某个值是否为字典的key
-3for循环: 默认遍历字典的key值
3.字典的增加
-1增加一个元素
-2增加多个元素
-3setdefault添加key值
4.字典的删除
-1 del 关键字
-2 pop删除指定的key的key-value值
-3 popitem删除最后一个key-value
-4 清空字典内容
5.字典的查看
-1查看key值、查看value值
-2 遍历字典
-3 查看指定key对应的value值(两种方法)
1.字典的创建
-1 key-value 不同类型的创建
-2 字典的嵌套
-3 工厂函数
字典:key-value 键值对存储的一种数据结构。value值可以是任意数据类型:int float long list tuple set dict
我们通过上一节集合的学习可以知道,一个空集合{}的类型是字典
d = {}
print(type(d))
<class 'dict'>
-1key-value 不同类型的创建
#字典中value为list类型
d = {
'王超':[18,'男','玩手机'],
'王凯':[18,'男','修手机']
}
print(d) #可以查看全部字典
print(d['王凯']) #可以通过字典中的key,查看key对应的value
{'王超': [18, '男', '玩手机'], '王凯': [18, '男', '修手机']}
[18, '男', '修手机']
#字典中value为数值类型
d2 = {
'a':1,
'b':2
}
print(d2)
{'a': 1, 'b': 2}
#字典中value为集合类型
d3 = {
'a':{1,2,3},
'b':{2,3,4}
}
print(d3)
{'a': {1, 2, 3}, 'b': {2, 3, 4}}
-2字典的嵌套
students = {
'06163012':{
'name':'王凯',
'age':18,
'score':90
},
'03162003':{
'name':'管良虎',
'age':19,
'score':80
}
}
#查看字典中key为'03162003'的字典中的key为'name'所对应的value
print(students['03162003']['name'])
-3工厂函数的方式
d5 = dict(a=1,b=2)
print(d5)
{'a': 1, 'b': 2}
2.字典的特性
-1不支持索引、切片;并且字典的重复、连接是无意义的(因为key是唯一的)
-2 成员操作符:判断的是某个值是否为字典的key
-3 for循环: 默认遍历字典的key值
d = {
'1':'a',
'8':'b',
'2':'a'
}
print(d['1'])
a
# 字典不支持索引
# print(d[0])
# 字典不支持切片
# print(d[::-1])
# 字典的重复和连接是无意义的,字典的key是唯一的
# 成员操作符:判断的是某个值是否为字典的key
print('1' in d)
print('1' not in d)
True
False
# 字典的for循环 默认遍历字典的key值
for key in d:
print(key)
1
8
2
# 遍历字典
for key in d:
print(key,d[key])
1 a
8 b
2 a
3.字典的增加
-1增加一个元素
-2增加多个元素
-3setdefault添加key值
-1增加一个元素
1).如果key值存在,则更新对应的value值
2).如果key值不存在,则添加对应的key-value值
services = {
'http': 80,
'ftp': 21,
'ssh': 22
}
services['mysql'] = 3306 #'mysql'不存在,所以添加新的key-value
print(services)
输出:{'http': 80, 'ftp': 21, 'ssh': 22, 'mysql': 3306}
services['http'] = 443 #'http'存在所以更新value值
print(services)
输出: {'http': 443, 'ftp': 21, 'ssh': 22, 'mysql': 3306}
-2.添加多个key-value值
1).如果key值存在,则更新对应的value值
2).如果key值不存在,则添加对应的key-value值
services = {
'http': 80,
'ftp': 21,
'ssh': 22
}
service_backup = { #想添加多个元素
'tomcat':8080,
'https':443,
'http':8888
}
#添加多个元素两种方法:
services.update(service_backup) #update()
print(services)
输出:{'http': 8888, 'ftp': 21, 'ssh': 22, 'tomcat': 8080, 'https': 443} #’http‘存在所以只修改value,‘tomcat’、'https'不存在则添加
services.update(flask=9000,http=999) #或者工厂函数 'http'存在 ‘flask’添加
print(services)
输出:{'http': 999, 'ftp': 21, 'ssh': 22, 'tomcat': 8080, 'https': 443, 'flask': 9000}
-3.setdefault添加key值:
1).如果key值存在,则不做修改
2).如果key值不存在,则添加对应的key-value值
services = {
'http': 80,
'ftp': 21,
'ssh': 22
}
services.setdefault('http',9000) #注意这里'http'存在,但是不更新value
print(services)
输出:{'http': 80, 'ftp': 21, 'ssh': 22}
services.setdefault('oracle',44575)
print(services)
输出:{'http': 80, 'ftp': 21, 'ssh': 22, 'oracle': 44575}
4.字典的删除
-1 del 关键字
-2 pop删除指定的key的key-value值
-3 popitem删除最后一个key-value
-4 清空字典内容
-1 del 关键字
services = {
'http': 80,
'ftp': 21,
'ssh': 22,
'mysql':3306
}
# 删除'http' 80
del services['http']
print(services)
输出:
{'ftp': 21, 'ssh': 22, 'mysql': 3306}
-2.pop删除指定的key的key-value值
1.)如果key存在,删除,并且返回删除key对应的value值
2.)如果key不存在,直接报错
services = {
'http': 80,
'ftp': 21,
'ssh': 22,
'mysql':3306
}
item = services.pop('http')
print(item) #删除'http' 键值对,并返回value:80
print(services)
输出:
80
{'ftp': 21, 'ssh': 22, 'mysql': 3306}
3.popitem删除最后一个key-value
services = {
'http': 80,
'ftp': 21,
'ssh': 22,
'mysql':3306
}
item = services.popitem() #删除最后一个键值对,并返回键值对
print('删除的key-value对应的是:',item)
print(services)
输出:
删除的key-value对应的是: ('mysql', 3306)
{'http': 80, 'ftp': 21, 'ssh': 22}
-4 清空字典内容
services.clear()
print(services)
输出:
{}
5.字典的查看
-1查看key值、查看value值
-2 遍历字典
-3 查看指定key对应的value值(两种方法)
-1查看key值、查看value值
service = {
'http':80,
'mysql':3306
}
# 查看字典里面的所有key值
print(service.keys())
输出:
dict_keys(['http', 'mysql'])
# 查看字典里面的所有value值
print(service.values())
输出:
dict_values([80, 3306])
-2 遍历字典
1.for循环
service = {
'http':80,
'mysql':3306
}
for k,v in service.items(): #for循环中两种方法遍历
print(k,'---->',v)
for k in service:
print(k,'---->',service[k])
输出均为:
http ----> 80
mysql ----> 3306
#查看指定key对应的value值
#key值不存在,程序会报错
print(service['https']) #'https'不存在,所以报错
输出:
File "F:/python/python1125/day04/14_字典的修改与查看.py", line 29, in <module>
print(service['https'])
KeyError: 'https'
2.get方法获取指定key对应的value值
如果key值存在,返回对应的value值
如果key值不存在,默认返回None,如果需要指定返回的值,传值即可
service = {
'http':80,
'mysql':3306
}
print(service.get('https'))
输出:None
print(service.get('https', 'key not exit')) # 指定返回key not exit
输出:key not exit