Python 如何复制列表,高效复制列表,列表复制效率对比,copy 与 deepcopy 差距对比

背景

在python中,避免不了经常使用 list 类型的变量,list 变量的复制也是经常遇到的需求,那么如何高效的复制一个 list呢?

代码

下面代码给出了 4 种不同的list复现方法,观察其代码效率:

# -*- coding:UTF-8 -*-

# region 引入 调试模块
from src.DebugInfo.DebugInfo import *
# endregion

if __name__ == '__main__':
	@秒表
    def 循环append(列表: list):
        新表 = []
        for 元素 in 列表:
            新表.append(元素)
        return 新表


    @秒表
    def copy新表(列表: list):
        新表 = copy(列表)
        return 新表

    @秒表
    def deepcopy新表(列表: list):
        新表 = deepcopy(列表)
        return 新表


    @秒表
    def 切片复制(列表: list):
        新表 = 列表[:]
        return 新表

    测试表 = [forin range(100000)]

    循环append(测试表)
    copy新表(测试表)
    deepcopy新表(测试表)
    切片复制(测试表)

吃代码为每一个list复制方法加上了 秒表 装饰器,下面是代码的运行结果:
采用4中不同的方式复制列表,代码运行效率
我们可以看到,采用 deepCopy方法的复制用时是最长的:24ms,采用 copy 和 切片方法的复制用时为300us左右,性能相当;采用循环append方法的复制用时为2.75ms,性能折中。

结论

很显示,我们在实际使用中,应该优先考虑 copy 或者 切片的方法来复制列表,以提高程序的运行性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

团圆吧

1 分钱,求鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值