回覆列表
  • 1 # 使用者9662297337979

    切片賦值,得到的與原變數無關,是兩個不同的物件;直接賦值,引用的是同一個物件。

    請看下例

    1、直接賦值。

    a=[0,2,3,0]

    b=a

    print b

    del(a[1])

    print b

    這樣寫得到的結果是:

    [0, 2, 3, 0]

    [0, 3, 0]

    2、切片賦值。

    a=[0,2,3,0]

    b=a[:]

    print b

    這樣寫得到的結果是

    del(a[1])

    print b

    [0, 2, 3, 0]

    [0, 2, 3, 0]

    是不一樣吧?

    3、現對它們的id做一下輸出就會發現問題所在;

    (1)直接賦值得到的id是一樣的:

    [0, 2, 3, 0]

    [0, 3, 0]

    id(b): 83565448 id(a): 83565448

    (2)切片賦值得到的id:

    [0, 2, 3, 0]

    [0, 2, 3, 0]

    id(b): 83250504 id(a): 83250056

  • 中秋節和大豐收的關聯?
  • 如何寫一個表白的簡短的情詩?