【问题标题】:How much space dose list re-allocation cost in Python? [duplicate]Python中列表重新分配需要多少空间? [复制]
【发布时间】:2019-10-18 02:25:31
【问题描述】:

我正在尝试解决空间中 O(1) 的问题。谁能帮我确定以下代码是否占用 O(1) 空间?

我有一个列表作为输入,每次我运行循环时都会这样做

list = list[:len(list)/2+1]

列表重新分配是否使用该列表的原始内存,还是应该创建额外的内存使用?谢谢。

【问题讨论】:

    标签: python


    【解决方案1】:

    通过简单的测试可以看出是浅拷贝

    list = [1,2,3,4,5,6,7,8]
    list2 = list[:len(list)//2+1]
    
    list2[0] = 999
    print(list)
    print(list2)
    

    打印出来

    [1, 2, 3, 4, 5, 6, 7, 8]
    [999, 2, 3, 4, 5]
    

    很明显他们没有共享内存。这不是 O(1) 空间

    【讨论】:

      猜你喜欢
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 2014-07-04
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多