1,字典
- 字典特性
- 字典没有索引
- 字典一个键对应一个键值
- 注意:规范书写
2,#字典的创建
dic = {}
print(dic) #结果:{}
dic = {'name': 'py', 'age': 20, 'sex': '男'}
print(dic) #结果:{'name': 'py', 'age': 20, 'sex': '男'}
3, setdefault(键,值)字典元素的增加
- 如果这个键不存在字典中,则将这个键值对添加进字典,并返回这个新键的值
- 如果这个键存在,不做任何改变,并返回这个键的值,
dic = {'name': 'py', 'age': 20, 'sex': '男'}
dic.setdefault('love') #添加键值对'love':'None'
v = dic.setdefault('job','set') #添加键值对'job':'set'
print(dic)
print(v) #返回新键的值
print(dic.setdefault('age',30)) #已存在的键不做任何更改并返回键值
#结果:{'name': 'py', 'age': 20, 'sex': '男', 'love': None, 'job': 'set'}
# set
# 20
4,字典增改
dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
dic['love'] = 'set' #没有键值对,添加
dic['age'] = 30 #如果有键,则值覆盖
print(dic) #结果:{'name': 'py', 'age': 30, 'sex': '男', 'num': [1, 2, 3], 'love': 'set'}
#注意:
dic['num'][1] = 5
print(dic) #结果:{'name': 'py', 'age': 30, 'sex': '男', 'num': [1, 5, 3], 'love': 'set'}
5,字典删除
- pop() #有返回值,按键去删除
dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
print(dic.pop('age')) #删除存在的键age #结果:20
#删除不存在的键时一定要设定异常处理的返回值(这里设的‘没有此键’),不然会报错。
print(dic.pop('love','没有此键')) #结果:没有此键
print(dic)
6,popitem() #默认删除最后一个
- 以元组的形式返回删除的键和值
# dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
# print(dic.popitem()) #结果:('num', [1, 2, 3])
# print(dic) #结果:{'name': 'py', 'age': 20, 'sex': '男'}
7,del() #删除的元素不存在会报错
dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
del dic['num']
print(dic) #结果:{'name': 'py', 'age': 20, 'sex': '男'}
8,清空或删除字典
dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
dic.clear() #清空字典
print(dic) #结果:{}
del dic #删除字典
print(dic) #结果:报错
9,updata() 将一个字典更新到另一个字典
dic1 = {'name': 'py', 'age': 20}
dic2 = {'age': 18, 'love': 'job'}
dic1.update(dic2) #将dic2的内容更新到dic1中
print(dic1) #结果:{'name': 'py', 'age': 18, 'love': 'job'}
print(dic2) #结果:{'age': 18, 'love': 'job'}
10,查
#查所有键
dic = {'name': 'py', 'age': 20}
print(dic.keys(),type(dic.keys()))
#查所有键值
print(dic.values())
#查所有元素
print(dic.items())
#结果 注意:查到的结果的类型还是字典
# dict_keys(['name', 'age']) <class 'dict_keys'>
# dict_values(['py', 20])
# dict_items([('name', 'py'), ('age', 20)])
# dic = {'name': 'py', 'age': 20}
# for k, v in dic.items(): #用了分别赋值
# print(k, v)
# # 结果:
# # name py
# # age 20
# dic = {'name': 'py', 'age': 20}
# for i in dic.items():
# print(i)
# #结果 以元组的形式返回键值
# # ('name', 'py')
# # ('age', 20)
11,得到一个键值
11.1,直接获取
dic = {'name': 'py', 'age': 20}
v = dic['name']
print(v) #结果:py
v = dic[love] #获取不存在的键报错
11.2,通过get()获取
v = dic.get('name')
print(v) #结果:py
v = dic.get('love', '没有这个键') #要设置异常处理,不然对于不存在的键会报错
print(v) #结果:没有这个键