Python 手写代码面试题, 对下面给出的 Python 字典,按值从大到小对键进行排序
Python 手写代码面试题, 对下面给出的 Python 字典,按值从大到小对键进行排序
QA
Step 1
Q:: 对下面给出的 Python 字典,按值从大到小对键进行排序
A:: 使用 sorted()
函数和 lambda 表达式,可以实现对字典按值进行排序。例如:
d = {'a': 3, 'b': 1, 'c': 2}
sorted_d = {k: v for k, v in sorted(d.items(), key=lambda item: item[1], reverse=True)}
Step 2
Q:: 如何合并两个字典并处理冲突的键
A:: 使用 Python 3.5
及以上版本,可以使用解包运算符:
d1 = {'a': 1, 'b': 2}
d2 = {'b': 3, 'c': 4}
merged_d = {**d1, **d2}
如果需要处理冲突的键,可以在解包前处理:
d1 = {'a': 1, 'b': 2}
d2 = {'b': 3, 'c': 4}
merged_d = {k: (d1.get(k, 0) + d2.get(k, 0)) for k in set(d1) | set(d2)}
Step 3
Q:: 如何删除字典中的一个键值对
A:: 使用 del 关键字或 pop()
方法。例如:
d = {'a': 1, 'b': 2}
del d['a']
或
d.pop('a')
Step 4
Q:: 如何查找字典中的最大值和最小值
A:: 使用 max() 和 min()
函数。例如:
d = {'a': 3, 'b': 1, 'c': 2}
max_value = max(d.values())
min_value = min(d.values())
Step 5
Q:: 如何反转字典中的键和值
A:: 使用字典推导式。例如:
d = {'a': 1, 'b': 2, 'c': 3}
reversed_d = {v: k for k, v in d.items()}