字典
字典(dict)是一种可变容器模型,可以存储任意类型对象。
字典的每一个键值(key-->value)都是一对一对应,用冒号隔开。每个键值对直接用逗号隔开,所有的键值对用大括号包起来。
1,创建字典
dic={'name':'Jack','age':22,'sex':'man'}
字典的键必须是唯一的,但是值不用唯一。键必须是不可变的,但是值不用。
1)值可变
Name=['Jack','Bob'] dic1={'Name':Name,'Age':22,'Sex':'man'} print(dic1) print(dic1['Name'])
输出结果
{'Name': ['Jack', 'Bob'], 'Age': 22, 'Sex': 'man'} ['Jack', 'Bob']
2)键不可变
info=['Name','Age'] dic1={info:'Jack','Age':22,'Sex':'man'} print(dic1)
输出结果
Traceback (most recent call last): File "test.py", line 2, in <module> dic1={info:'Jack','Age':22,'Sex':'man'} TypeError: unhashable type: 'list'
2,访问字典的值
根据键来访问对应的值。
dic={'name':'Jack','age':22,'sex':'man'} print(dic['name']) print(dic['age'])
输出结果
Jack
22
若是字典中不存在要访问的键则会报错。
dic={'name':'Jack','age':22,'sex':'man'} print(dic['school'])
输出结果
Traceback (most recent call last): File "test.py", line 2, in <module> print(dic['school']) KeyError: 'school'
3,修改字典元素
dic={'name':'Jack','age':22,'sex':'man'} dic['name']='Bob' print(dic)
输出结果
{'name': 'Bob', 'age': 22, 'sex': 'man'}
4,增加字典元素
dic={'Name':'Jack','Age':22,'Sex':'man'} dic['School']='Harvard University' print(dic)
输出结果
{'Name': 'Jack', 'Age': 22, 'Sex': 'man', 'School': 'Harvard University'}
(2)也可以采用update函数
dic={'Name':'Jack','Age':22,'Sex':'man'} dic.update(School='Harvard University') #增加字典的键值对 print(dic) dic.update(Name='LiSi') #修改字典中的值 print(dic)
输出结果
{'Name': 'Jack', 'Age': 22, 'Sex': 'man', 'School': 'Harvard University'} {'Name': 'LiSi', 'Age': 22, 'Sex': 'man', 'School': 'Harvard University'}
5,删除字典元素
1)pop(x),删除指定的键x,如果不存在会报错
dic={'Name':'Jack','Age':22,'Sex':'man'} dic.pop('Sex') print(dic)
输出结果
{'Name': 'Jack', 'Age': 22}
2)del 也可以删除指定的键,也可以删除字典
dic={'Name':'Jack','Age':22,'Sex':'man'} del dic['Age'] print(dic) del dic print(dic)
输出结果
{'Name': 'Jack', 'Sex': 'man'} Traceback (most recent call last): File "test.py", line 5, in <module> print(dic) NameError: name 'dic' is not defined
3)清空字典
dic.clear(),可以清空整个字典
dic={'Name':'Jack','Age':22,'Sex':'man'} dic.clear() print(dic)
输出结果
{}
5,字典长度
dic={'Name':'Jack','Age':22,'Sex':'man'} print(len(dic))
输出结果
3
6,查找键是否在字典中
dic={'Name':'Jack','Age':22,'Sex':'man'} print('Name' in dic) print('School' in dic)
输出结果
True
False
7,将字典转换成其他类型
只是将字典的键保留了
dic={'Name':'Jack','Age':22,'Sex':'man'} l=list(dic) #将字典转换成列表 print(l) t=tuple(dic) #将字典转换成元组 print(t) s=set(dic) #将字典转换成集合 print(t)
输出结果
['Name', 'Age', 'Sex'] ('Name', 'Age', 'Sex') {'Name', 'Age', 'Sex'}
8,其他操作
dic={'Name':'Jack','Age':22,'Sex':'man'} print(dic.keys()) #字典的键 print(dic.values()) #字典的值 d=dic.copy() #复制字典 print(d) for k,v in dic.items(): #字典内的元素(包括键和值) print(k,v)
输出结果
dict_keys(['Name', 'Age', 'Sex']) dict_values(['Jack', 22, 'man']) {'Name': 'Jack', 'Age': 22, 'Sex': 'man'} Name Jack Age 22 Sex man