old = [1, 2, 3]
以下两行代码有什么区别(如果有的话)?
new = old[:]
new = list(old)
更新:我已经接受了ubershmekel的答案,但后来我了解到一个有趣的事实:[:]
适用于小型列表(10个元素),而list()
对于更大的列表(100000个元素)来说速度更快。
~$ python -S -mtimeit -s "a = list(range(10))" "a[:]"
1000000 loops, best of 3: 0.198 usec per loop
~$ python -S -mtimeit -s "a = list(range(10))" "list(a)"
1000000 loops, best of 3: 0.453 usec per loop
~$ python -S -mtimeit -s "a = list(range(100000))" "a[:]"
1000 loops, best of 3: 675 usec per loop
~$ python -S -mtimeit -s "a = list(range(100000))" "list(a)"
1000 loops, best of 3: 664 usec per loop
old
是列表的情况(请看我的第一行,old = [1, 2, 3]
)。 - bpgergo