Python数据类型之字典

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)
{'小型犬': '贵宾犬', '中型犬': '柯基犬', '大型犬': '金毛犬'}
{'小型': '新加坡猫', '中型': '波斯猫', '大型': '沙特尔猫'}
{'华北型': '东北民猪', '华南型': '海南猪', '江海型': '太湖猪'}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值