第11章 字典

字典(dict)是可迭代的、可变的数据结构,通过键来访问元素,字典结构比较复杂,由两部分视图构成的,一是键(key)视图,另一是值(value)视图。键视图不能包含重复元素,而值视图可以,键和值是成对出现的。

下图是字典结构的“国家代号”,键是国家代号,值是国家。

11.1 创建字典 

字典可以使用以下两种方式创建。

(1)使用大括号{}包裹键值创建字典。

(2)dict()函数创建字典。

11.1.1 使用大括号创建字典

使用大括号{}将键值对包裹起来,“键”和“值”之间用冒号分隔,两个键值对之间用的逗号分隔。

获得键值对个数或字典长度也是用len()函数。

字典中的“键”不能重复。 

11.1.2 使用dict()函数创建字典

dict()函数可以有很多参数形式,常用的有:

1)dict(d):参数d是其他字典对象。

2)dict(iterable):参数iterable是可迭代对象,可以是元组或列表等。

使用dict()函数。

使用dict(iterable)函数。

 zip()函数 ,可将两个迭代对象打包成元组,在创建字典时,可迭代对象元组,需要两个可迭代对象,第一个是键([102, 105, 109]),第二个是值(['张三', '李四', '王五'])。它们包含的元素个数相同,并且一一对应。

11.2 修改字典

 修改字典操作包括添加、替换和删除键对。

 访问字典中的元素可通过下标实现,下标参数是键,返回对应值,dict1[109]是取出字典dict1中键为109的值。

del dict1[109]是删除109键对应的值,注意del是语句不是函数,使用del语句删除键值对时,如果键不存在会抛出错误。

删除元素:字典的pop(key[,default])和popitem()方法。

pop(key[,default])方法删除键值对,如果键不存在则返回默认值(default)。

popitem()方法可以删除任意键值对,返回删除的键值对构成元组。

11.3 访问字典

访问字典的键或值。

๏ get(key[, default])。通过键返回值,如果键不存在返回默认值。

๏ items()。返回字典的所有键值对。

๏ keys()。返回字典键视图。

๏ values()。返回字典值视图。

在访问字典时,也可以使用in和not in运算符,但要注意,in 和not in只能在测试键视图中是否包含特定元素。

 

11.4 遍历字典 

字典有两个视图,可以只遍历值视图,也可只遍历键视图,也可以同时遍历。遍历过程是用for循环实现的。

student_dict = {102: '张三',105: '李四',109: '王五'}

print('---遍历键---')
for student_id in student_dict.keys():
    print('学号:' + str(student_id))

print('---遍历值---')
for student_name in student_dict.values():
    print('学生:' + student_name)

print('---遍历键:值---')
for student_id,student_name in student_dict.items():
    print('学号:{0} - 学生:{1}'.format(student_id,student_name))

11.5 字典推导式

 字典包含了键和值两个不同的结构,因此字典的推导式可以非常灵活。语法结构如下:

input_dict = {'one': 1,'two': 2,'three': 3,'four': 4}
output_dict = {k: v for k, v in input_dict.items() if v % 2 == 0}
print(output_dict)

keys = {k for k, v in input_dict.items() if v % 2 == 0}
print(keys)

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值