这可能是我不太理解切片。我想把一个列表从一个特定的索引添加到另一个列表。我很好奇,因为我读到过,如果你切一个列表,你会做一个(深)拷贝。下面哪一种方法更快?
方法1
new_lst += old_lst[i:]
方法2
while i < len(old_lst):
new_list.append(old_lst[i])
i += 1
while
循环将多次调用append,这会产生函数开销。另一方面,[:]
(浅复制)将在一次调用中复制您的数组。然而,如果你的元素不是字面量(例如,如果它们是一个列表),那么你最终会意外地在列表之间共享指针。如果你真的想深度复制,那么使用from copy import deepcopy
来深度复制你的iterable。