22. 字典专题进阶
大家好,我是千与编程,在上一期的课程中我们讲解了python语言中的字典的初阶使用方法部分,在python3的代码中除列表数据结构外,使用频率最高的就是字典数据结构。
由于我们的目的之一是使用Python语言高效的编写程序代码,比如进行Leetcode进行算法刷题。那么掌握常用字典的操作接口是很有必要的。
以下是我们今天讲解内容的思维导图:

了解了您需要更详尽的解释和代码示例。这里我将针对每个函数和方法提供详细的解释和实用的代码示例。
一、Python3字典常用接口
1.clear()
清除字典中的所有项。
d = {'a': 1, 'b': 2}
d.clear()
print(d)
# d 现在是 {}
代码运行:

2.fromkeys(keys, value)
使用给定的键创建新字典,每个键对应的值都是相同的。
keys = ['a', 'b', 'c']
value = 1
new_dict = dict.fromkeys(keys, value)
print(new_dict)
# new_dict 是 {'a': 1, 'b': 1, 'c': 1}
代码运行:

3.get(key, default)
安全地获取字典中键对应的值。如果键不存在,则返回default。
d = {'a': 1, 'b': 2}
print(d.get('a', 'not found')) # 输出 1
print(d.get('c', 'not found')) # 输出 'not found'
4.items()
返回一个视图对象,包含字典中的键值对。
d = {'a': 1, 'b': 2}
for key, value in d.items():
print(key, value)
代码运行:

5.pop(key, default)
删除指定键的元素,并返回该元素的值。如果键不存在,则返回default。
d = {'a': 1, 'b': 2}
print(d.pop('b', 'not found')) # 输出 2
print(d.pop('c', 'not found')) # 输出 'not found'
# d 现在是 {'a': 1}
代码运行:

6.popitem()
删除并返回一个字典中的键值对。在 Python 3.7+ 中,它是按插入顺序的最后一个键值对。
d = {'a': 1, 'b': 2}
print(d.popitem()) # 可能输出 ('b', 2)
# d 现在可能是 {'a': 1}
代码运行:

7.setdefault(key, default)
如果键存在于字典中,返回其值。如果不是,则插入键,值设为default,并返回default。
d = {'a': 1, 'b': 2}
print(d.setdefault('a', 3)) # 输出 1
print(d.setdefault('c', 3)) # 输出 3
# d 现在是 {'a': 1, 'b': 2, 'c': 3}
代码运行:

二、Python3字典内置函数
1.len(dictionary)
返回字典中键值对的数量。
d = {'a': 1, 'b': 2, 'c': 3}
print(len(d)) # 输出 3
2.sorted(dictionary)
对字典中的键进行排序,并返回排序后的键列表。
d = {'b': 2, 'a': 1, 'c': 3}
print(sorted(d)) # 输出 ['a', 'b', 'c']
代码运行:

3.max(dictionary) 和 min(dictionary)
返回字典键的最大值和最小值。
d = {'b': 2, 'a': 1, 'c': 3}
print(max(d)) # 输出 'c'
print(min(d)) # 输出 'a'
代码运行:

4.any(dictionary) 和 all(dictionary)
检查字典中的值。
d = {'a': True, 'b': False}
print(any(d.values())) # 输出 True,因为至少有一个值为 True
print(all(d.values())) # 输出 False,因为不是所有值都为 True
代码运行:

5.sorted(dictionary, key=..., reverse=...)
对字典进行排序,可以指定排序的键和方向。
d = {'a': 3, 'b': 1, 'c': 2}
# 按值排序
print(sorted(d, key=d.get)) # 输出 ['b', 'c', 'a']
# 按值逆序排序
print(sorted(d, key=d.get, reverse=True)) # 输出 ['a', 'c', 'b']
代码运行:

通过上述示例,您可以看到每个方法和函数的具体用法,以及如何在Python字典操作中应用它们。学过Java的同学应该感觉这些接口似曾相识,是的,这些正是HashMap容器的用法类比。可以将二者对照起来学习。
我是千与编程,一个只讲干货的码农,我们下期见!
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
