字典
定义:使用{"key":"value"}
键值对来确定字典,以逗号分隔,以大括号去包裹 的序列
声明:
空字典
dic = dict{}
dic = {}
非空字典
dic = {“key”:“value”}
注意:定义字典时,字典的键(key),不可以随便乱用,可变数据类型不能够作为字典的键
字典的value值可以是任意的数据类型
定义字典
dic = {"name":"倾染",'age':18}
print(dic) # {'name': '倾染', '"age': 18}
print(type(dic)) # <class 'dict'>
dic1 = {"name":"倾染",'age':18,['age']:20}
print(dic1) # 报错(类型错误)
数值类型的键
dic1 = {"name":"倾染",'age':18,1:'height'}
print(dic1) # {'name': '倾染', 'age': 18, 1: 'height'}
字典的方法
字典取值:字典没有索引,通过key值获取value值
获取值
dic = {"name":"倾染",'age':18}
name = dic['name']
print(name) # 倾染
1.增加操作
1.1 格式:字典[key] = value
注意:字典中的key如果存在,重新赋值,会覆盖掉原本的值
如果不存在,添加一个新的键值对
dic = {"name":"倾染",'age':18}
dic['height'] = 1.82
print(dic) # {'name': '倾染', 'age': 18, 'height': 1.82}
dic['name'] = '老蓝'
print(dic) # {'name': '老蓝', 'age': 18, 'height': 1.82}
1.2 setdefault (key,default_value)
注意:如果字典中key不存在,直接添加键值对
如果存在,不会重新赋值,不会覆盖原有的值,不会发生变化
dic = {"name":"倾染",'age':18}
dic.setdefault('sex','man')
print(dic) # {'name': '倾染', 'age': 18, 'sex': 'man'}
dic.setdefault('name','老蓝')
print(dic) # {'name': '倾染', 'age': 18, 'sex': 'man'}
2.删除操作
2.1 pop(key) 弹出:弹出指定的键值对
有返回值,返回值是被弹出的值
dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
res = dic.pop('name')
print(dic) # {'age': 18, 'sex': 'man'}
print(res) # 倾染
2.2 popitem() --> 弹出:不需要接受任何参数,默认弹出最后一个键值对
有返回值,返回值是一个元组
dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
res = dic.popitem()
dic = {'name': '倾染', 'age': 18, 'sex': 'man'} # {'name': '倾染', 'age': 18}
print(res) # ('sex', 'man')
2.3 clear --> 清空字典
dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
dic.clear()
print(dic) # {}
3.修改操作
3.1 update
参数:传入的是一个字典
dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
dic.update({'age':20})
print(dic) # {'name': '倾染', 'age': 20, 'sex': 'man'}
dic1 = {'height': 182}
dic.update(dic1)
print(dic) # {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
4.查找方法
4.1 查找字典中所有的键值
dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.keys()
print(res) # dict_keys(['name', 'age', 'sex', 'height'])
4.2 查找字典中所有的value值
dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.values()
print(res) # dict_values(['倾染', 20, 'man', 182])
4.3 get() 以键取值,如果键不存在,返回None
注意:get方法,获取值的时候,如果key存在,返回key对应的value
如果不存在,有默认值,则返回默认值
如果key不存在,没有默认值,返回值为None
dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.get('name')
print(res) # 倾染
res1 = dic.get('name1')
print(res1) # None
res2 = dic.get('name','lisi')
print(res2) # 倾染
res5 = dic.get('name1','lisi')
print(res5) # lisi
4.4 items() 返回字典的键值对,放到列表中,并且每一个键值对都是元组
dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.items()
print(res) # dict_items([('name', '倾染'), ('age', 20), ('sex', 'man'), ('height', 182)])
for i in dic.items():
print(i) # ('name', '倾染') ('age', 20) ('sex', 'man') ('height', 182)
4.5 len() 字典的长度=键值对的个数
dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = len(dic)
print(res) # 4
for 和 if
循环和判断:对键进行操作
注意:只能通过键去判断
dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
for i in dic:
print(i) # name age sex height
if 'name' in dic:
print('在里面')
else:
print('不在里面')
# 在里面
dict()函数
定义空字典
dic = dict()
print(dic) # {}
注意:dict() 不可以传递字符串
str = 'hello'
dic2 = dict(str)
print(dic2) # 报错(值错误)
传入一个可迭代的对象(二维:e.g. 列表、元组)
dic = dict([1,2,3,4,5,6])
dic1 = dict([(1,2),(3,4),(5,6)])
dic2 = dict([[1,2],[3,4],[5,6]])
print(dic) # 报错
print(dic1) # {1: 2, 3: 4, 5: 6}
print(dic2) # {1: 2, 3: 4, 5: 6}
通过关键字去创建字典
dic = dict(name = 'Qingran',age = '20')
print(dic) # {'name': 'Qingran', 'age': '20'}
练习:
info = {
"001":{'name':'Tom','age':19,'address':'北京'},
"002":{'name':'Jerry','age':20,'address':'上海'},
"003":{'name':'Laowang','age':28,'address':'广州'},
}
需求:获取003所有的key键和valu值
dic = info.get("003")
res = dic.keys()
print(res)
ans = dic.values()
print(ans)
# dict_keys(['name', 'age', 'address'])
# dict_values(['Laowang', 28, '广州'])
法二:
for k,v in info["003"].items():
print(k,v)
# name Laowang
# age 28
# address 广州