python之字典的基本概念,特性及增删改查
1. 字典的基本概念
1.1 字典的定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
1.2 字典的创建
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
s = {
'linux':[100,99,89],
'python':[90,99,100]
}
print(s,type(s))
输出结果:
也可如此创建字典:
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
print(dict1,type(dict1))
print(dict2,type(dict2))
输出结果:
1.3 空字典
s = {}
print(s,type(s))
输出结果:
1.4 工厂函数
d = dict()
print(d,type(d))
d = dict(a=1,b=2)
print(d,type(d))
输出结果:
1.5 字典的嵌套
student = {
123:{
'name':'tom',
'age':18,
'score':99
},
456:{
'name':'lily',
'age':18,
'score':89
}
}
print(student)
print(student[123]['score'])
输出结果:
2. 字典的特性
字典支持成员操作符,支持for循环,遍历字典。
不支持索引、切片,并且字典的重复、连接无意义,因为字典的key值唯一
2.1 成员操作符
成员操作符针对的是key
d = {
'1':'a',
'2':'b'
}
print(d['1'])
print('1' in d)
print('a' in d)
输出结果:
2.2 for循环
for循环针对的是key
d = {
'1':'a',
'2':'b'
}
for key in d:
print(key)
输出结果:
2.3 遍历字典
d = {
'1':'a',
'2':'b'
}
for key in d:
print(key,d[key])
输出结果:
3. 字典的增删改查
3.1 字典元素的添加
增加一个元素
如果key值存在 则更新对应的value
如果key不存在 则添加对应的value
service = {
'http':80,
'ftp':23,
'ssh':22
}
service['https'] = 443
print(service)
service['ftp'] = 21
print(service)
输出结果:
增加多个元素
service = {
'http':80,
'ftp':23,
'ssh':22
}
service_backup = {
'tomcat':8080,
'mysql':3306
}
# 增加多个元素,字典services中增加services_backup
service.update(service_backup)
print(service)
# 字典services中增加dns=53,flask=9000
service.update(dns=53,flask=9000)
print(service)
输出结果:
3.2 字典元素的删除
del直接删除
service = {
'http':80,
'ftp':23,
'ssh':22
}
del service['http']
print(service)
输出结果:
.pop删除指定的key的key-value
若key存在,删除并返回key对应的value值;若不存在,则报错
service = {
'http':80,
'ftp':23,
'ssh':22
}
item = service.pop('ssh')
print(item) #item为ssh的value值
print(service)
输出结果:
.popitem删除最后一个key-value值
service = {
'http':80,
'ftp':23,
'ssh':22
}
item = service.popitem()
print(item)
print(service)
输出结果:
清空字典内容:service.clear()
service = {
'http':80,
'ftp':23,
'ssh':22
}
service.clear()
print(service)
输出结果:
3.3 字典元素的修改
.setdefault()添加key值
若key值存在,不做修改;若key值不存在,则添加key-value值对
service = {
'http':80,
'ftp':23,
'ssh':22
}
service.setdefault('http',9090)
print(service)
service.setdefault('oracle',44575)
print(service)
输出结果:
3.4 字典元素的查看
查看字典中所有的key值
service = {
'http':80,
'ftp':23,
'ssh':22
}
print(service.keys())
输出结果:
查看字典中所有的value值
service = {
'http':80,
'ftp':23,
'ssh':22
}
print(service.values())
输出结果:
查看字典的key-value对
service = {
'http':80,
'ftp':23,
'ssh':22
}
print(service.items())
输出结果:
查看key的value值
.get方法获取指定key值对应的value值
如果key值存在,返回对应的value值;
如果key值不存在,默认返回None,如果需要指定返回值,传值即可
service = {
'http':80,
'ftp':23,
'ssh':22
}
print(service.get('https'))
print(service.get('https',443))
输出结果: