20分钟掌握python字典!

字典

属性----键值对的集合

1、字典:dictionary,简写:dict
2、key–value;键–值;
3、键值中间用冒号分割,不同的键值对之间用逗号隔开;

4、字典与列表的相同点与不同点:
相同点
a)列表和字典都数于集合类型
b)列表和字典都是通过索引来访问

不同点
a)列表适合保存同一类信息,例如:name列表只保存姓名,如果存放的种类比较多,则容易混乱;
b)字典可以保存多种信息,例如:学生的姓名、年龄、性别有专门的键和值来保存,并且一一对应;
c)列表的排序有序,已经规定好了,字典的排序需要自己规定;

5、基本属性
key----数字、字符串、布尔类型(布尔类型用的比较少,一般使用字符串)
value----任意类型的数据

student1 = {'name': 'Maker', 'age': '24', 'gender': 'male'}

数据访问

student1 = {'name': 'Maker', 'age': '24', 'gender': 'male'}
print(student1['name'])

数据访问过程中,字典名称后面中括号,输入 的内容,注意:键的属性是字符串,就输入字符串,不要输入错误;

字典的操作

增加键值对

student1 = {'name': 'Maker', 'age': '24', 'gender': 'male'}
student1['rank'] = 3
print(student1)

修改值的数据

student1 = {'name': 'Maker', 'age': '24', 'gender': 'male'}
student1['age'] = 24.5
print(student1)

删除数据

student1 = {'name': 'Maker', 'age': '24', 'gender': 'male'}
del(student1['gender'])
print(student1)

一行定义和多行定义

1、列表多行:列表中一个长列表可以放在多行
2、字符串多行:一个字符很多的字符串,不可以在多行中注释,需要用“连续字符”(\)
3、字典多行:可以多行,和集合类型数据多行操作相似(列表)

列表和字典的嵌套使用

1、字典中可以嵌套列表

student1 = {'name': 'xuhang', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
print(student1['hobbies'][0])

2、列表中可以嵌套字典

studets = [{'name': 'hammer', 'age': '24', 'gender': 'male'},
           {'name': 'maker', 'age': '24', 'gender': 'male'},
           {'name': 'hero', 'age': '24', 'gender': 'male'},
           ]
print(studets[1]['name'])

如何判断两个字典是否相等-- 用‘ == ’判断

1、列表判断是否相等:长度、内容,顺序都相等;(列表是一个有序的集合)
2、字典判断是否相等:内容相同、键值对个数相等即可;(字典是一个无序集合,自己定义了索引)

使用keys和values取得键集合和值集合,并对字典进行遍历

1、两个方法dict.keys() 、dict.values(),获得一个集合,这个集合属性不是列表,可以通过list()方法把内容转化为列表;

student1 = {'name': 'maker', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
print(type(student1.keys()))
print(list(student1.keys()))
student1 = {'name': 'maker', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
print(type(student1.values()))
print(list(student1.values()))

2、取得键值对的集合–dict.items(),返回值属性不是列表,只是一个集合,把键值对转化为元组

student1 = {'name': 'maker', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
print(type(student1.items()))
print(list(student1.items()))

3、for循环对字典进行遍历

student1 = {'name': 'maker', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
 for k, v in student1.items():
    print(k, v)

判断键是否存在和设置键的默认值

应用场景:在从字典中取值过程中,我们可以判断,键是否在字典中,如果在,则进行取值,这样帮助我们避免报错。
同样可以判断值是否存在。

student1 = {'name': 'maker', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
print('name' in student1.keys())

以下判断方式,默认判断键的值。

student1 = {'name': 'maker', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
print('name' in student1)

给某个键设置默认值
此处用法:在sutdent1中,name对应的值为maker,此时如果后面再设定name对应的值为hero,则name对应的值还是maker,最有在程序中,没有对应的键情况下,写入设定默认值,默认值才会生效。
此处应用:在未知字典的情况下,给字典的某个键设置默认值,则可以防止报错,如果xx键有对应的值,则直接使用对应的值,如果没有,则使用默认值,这样我们就能够知道键值的情况,帮助我们避免出现程序报错。
备注:使用student1[‘name’] = 'hero’则会直接更改name键对应的值。

student1 = {'name': 'maker', 'age': '24', 'gender': 'male', 'hobbies': ['basketball', 'football']}
student1.setdefault('name', 'hero')
print(student1['name'])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值