gpt4 book ai didi

python 列表副本 : is there a difference between old[:] and list(old)?

转载 作者:太空狗 更新时间:2023-10-30 00:41:43 31 4
gpt4 key购买 nike

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[:] 将是与 old 相同类型容器(可能是元组或字符串)中的 old 的所有元素,而 list(old) 将是具有相同容器的列表元素。

即如果 old 是字符串 'foo',old[:] 将是字符串 'foo',而 list(old) 将是列表 ['f', 'o', 'o']。

关于python 列表副本 : is there a difference between old[:] and list(old)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8067765/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com