MST

星途 面试题库

面试题:Python字典:合并与更新

假设有两个Python字典dict1 = {'a': 1, 'b': 2}和dict2 = {'b': 3, 'c': 4},请使用至少两种不同的方法将这两个字典合并为一个字典,要求合并后字典为{'a': 1, 'b': 3, 'c': 4},并解释每种方法的适用场景及可能存在的性能差异。
38.5万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

方法一:使用update()方法

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
result = dict1.copy()
result.update(dict2)
print(result)

适用场景:适用于一般的字典合并场景,简单直接。 性能差异:update()方法是在原有字典上进行操作,时间复杂度通常为O(n),其中n是要更新的字典中元素的数量。如果字典规模较小,性能影响不大;但对于大规模字典,由于需要遍历并更新每个元素,可能会消耗较多时间。

方法二:字典解包(Python 3.5+)

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
result = {**dict1, **dict2}
print(result)

适用场景:简洁明了,适用于Python 3.5及以上版本,在需要快速创建合并字典的场景下非常方便。 性能差异:字典解包在创建新字典时会同时处理两个字典的键值对,从时间复杂度来看也是O(n),其中n是两个字典元素数量之和。在性能上与update()方法相近,但由于是创建新字典,对于内存使用上可能会有一些差异。如果对内存使用较为敏感,update()方法在原字典基础上更新可能更优;若更注重代码简洁性和快速创建新字典,字典解包是更好的选择。