Python数据类型之字典
字典的语法
键值对形式,键值之间用“:”分隔,键值对包含在一个”{}“里
#之前的数据类型都是与变量所关联
name = 'bily' #字符串类型
name = 89 #数字类型
key = 88.8
list = [3,4,5,6] #列表类型
tuple = (6,4,68) #元组
#字典的例子
#字典存放的数据更大
#平常查字典的时候目录和页数是对应的
#在python中叫做键和值
dict = {'name':'老周','age':'29','job':'程序员'}
print(dict)
{'name': '老周', 'age': '29', 'job': '程序员'}
键是唯一、无序的
dict = {'name':'老周','age':'29','job':'程序员','age':'33'}
print(dict)
{'name': '老周', 'age': '33', 'job': '程序员'} #后面的替换了前面的
键值可以是数字、字符串、元组,一般用于字符串
dict1 = {1:101,2:102}
print(dict1)
{1: 101, 2: 102}
简单的字典
字典的访问:字典名称[键]
#定义字典
dict2 = {'河北':'邯郸','甘肃':'兰州','四川':'成都'}
#对字典进行访问(取值)===> 值=字典名称[键]
hd = dict2['河北']
print(hd)
邯郸
添加键值对
#添加键值对(字典的数据)
dict2['山西'] = '太原'
print(dict2)
{'河北': '邯郸', '甘肃': '兰州', '四川': '成都', '山西': '太原'}
修改字典的值
#修改字典的值
dict2['河北'] = '邢台'
print(dict2)
{'河北': '邢台', '甘肃': '兰州', '四川': '成都', '山西': '太原'}
删除键值对:del
#删除字典的键值对
del dict2['四川']
print(dict2)
{'河北': '邢台', '甘肃': '兰州', '山西': '太原'}
除了这个横向排序,还可以纵向排序
student = {
'name':'张三',
'gender':'男',
'age':'20',
'phone':'13813812138'
}
print(student)
{'name': '张三', 'gender': '男', 'age': '20', 'phone': '13813812138'}
shell = {
'pwd':'显示当前目录',
'cd':'切换目录',
'mv':'移动文件或目录',
'mkdir':'创建目录',
'cp':'复制文件或目录'
}
for i in shell:
print(i+':'+shell[i])
pwd:显示当前目录
cd:切换目录
mv:移动文件或目录
mkdir:创建目录
cp:复制文件或目录
遍历字典
遍历所有的键值对:
key
value
items()
#定义一个字典
dict = {'name':'老周','age':'29','job':'程序员'}
#遍历字典:键值对的集合、键的集合、值的集合
for key,value in dict.items():
print(key+":"+value)
name:老周
age:29
job:程序员
#字典常用的函数
print(dict.items())
print(dict.keys())
print(dict.values())
dict_items([('name', '老周'), ('age', '29'), ('job', '程序员')])
dict_keys(['name', 'age', 'job'])
dict_values(['老周', '29', '程序员'])
按顺序遍历字典中的所有的键:sorteed()
#将字典的键排序
print(sorted(dict1.keys()))
print(sorted(dict1.values()))
for info in sorted(dict1.keys()):
print(info,end=" ")
print("\n")
for info in sorted(dict1.values()):
print(info,end=" ")
['age', 'job', 'name']
['29', '程序员', '老周']
age job name
29 程序员 老周
遍历字典中所有的值:values()
其他方法(扩展)
计算字典元素个数,即键的总数:len(dict)
#字典元素的个数
print(len(dict))
3
返回一个字典的浅复制:dict.copy()
#定义一个空字典
dict1 = {}
#复制字典
dict1 = dict.copy()
print(dict1)
{'name': '老周', 'age': '29', 'job': '程序员'}
返回并删除字典中的最后一对键和值:popitem()
dict = {'name':'老周','age':'29','job':'程序员'}
print(dict)
print(dict.popitem())
print(dict)
{'name': '老周', 'age': '29', 'job': '程序员'}
('job', '程序员')
{'name': '老周', 'age': '29'}
#删除指定的值
print(dict.pop('age'))
print(dict)
{'name': '老周', 'age': '29', 'job': '程序员'}
29
{'name': '老周', 'job': '程序员'}
删除字典内所有元素:dict(clear)
dict = {'name':'老周','age':'29','job':'程序员'}
print(dict)
dict.clear()
print(dict)
{'name': '老周', 'age': '29', 'job': '程序员'}
{}
字典的嵌套
列表里嵌套字典
#定义字典
dict = {'name':'老周','age':'29','job':'程序员'}
dict1 = {'age':'29','job':'程序员'}
dict2 = {'name':'老周','job':'程序员'}
#列表里嵌套字典
list = [dict,dict1,dict2]
print(list)
[{'name': '老周', 'age': '29', 'job': '程序员'}, {'age': '29', 'job': '程序员'}, {'name': '老周', 'job': '程序员'}]
字典里嵌套列表
dict3 = {'pet':['cat','dog','duck']}
print(dict3
{'pet': ['cat', 'dog', 'duck']}
字典里嵌套字典
dict4 = {
'age':{'girl':'18','boy':'20'},
'job':{'man':'IT','women':'db'}
}
print(dict4)
for key,value in dict4.items():
print('key:'+key,end=" ")
for v in value.items():
print(v)
{'age': {'girl': '18', 'boy': '20'}, 'job': {'man': 'IT', 'women': 'db'}}
key:age ('girl', '18')
('boy', '20')
key:job ('man', 'IT')
('women', 'db')
练习
1、创建两个字典来表示老师,然后将这两个字典存储到一个名为person的列表中。遍历这个列表,将其中每个老师的信息都打印出来
teacher1 = {
'语文':'张三',
'数学':'李四',
'英语':'王五',
}
teacher2 = {
'物理':'赵六',
'历史':'葛七',
'政治':'周八'
}
person = [teacher1,teacher2]
for teacher in person:
print(teacher)
{'语文': '张三', '数学': '李四', '英语': '王五'}
{'物理': '赵六', '历史': '葛七', '政治': '周八'}
2、创建多个字典,每个字典都使用一种宠物的名字命名;在每个字典中,包含宠物的类型和主人的名字。将这些字典存储在一个名为pets的列表中,再遍历该列表,将宠物的信息都打印出来
dog = {
'小型犬':'贵宾犬',
'中型犬':'柯基犬',
'大型犬':'金毛犬'
}
cat = {
'小型':'新加坡猫',
'中型':'波斯猫',
'大型':'沙特尔猫'
}
pig = {
'华北型':'东北民猪',
'华南型':'海南猪',
'江海型':'太湖猪'
}
pets = [dog,cat,pig]
for pet in pets:
print(pet)
{'小型犬': '贵宾犬', '中型犬': '柯基犬', '大型犬': '金毛犬'}
{'小型': '新加坡猫', '中型': '波斯猫', '大型': '沙特尔猫'}
{'华北型': '东北民猪', '华南型': '海南猪', '江海型': '太湖猪'}