这是一些示例代码:
shopping = ["milk", "eggs", "bananas"]
# slower? uses 2 O(n) operations
if "milk" in shopping:
shopping.remove("milk")
print("milk removed from shopping list.")
else:
print("milk not in shopping list, not removing.")
# faster? Only uses one O(n) operation, right?
try:
shopping.remove("milk")
print("milk removed from shopping list.")
except:
print("milk not in shopping list, not removing.")
这两种方法相比如何?一个比另一个快吗?使用字典(哈希图)会更快吗,因为查找元素的时间复杂度为 O(1)(如果内存密集一点(对吧?))?
第一个脚本检查该项目是否在列表中,这是一项额外的检查,会使其速度变慢。
但是对于第二个脚本,它会立即将其删除,而无需额外检查。