回覆列表
  • 1 # lichengsheng2

    這兩者是有區別的,先看下面例子:

    >>>L=[1,2,3,4]

    >>>L1=L

    >>>L2=L[:]

    >>>L[1]=5

    >>>L

    [1,5,3,4]

    >>>L1

    [1,5,3,4]

    >>>L2

    [1,2,3,4]

    L改變後,L1跟著變,L2並不改變。列表變數是這樣實現的:

    首先有列表值,例如上面的[1,2,3,4],存在計算機某一單元中,我們假定此單元是編號沒。在L中實際上放的是單元編號m,當我們把L賦值給L1時,L1中放入的也是m。所以當我們更改L時,python解釋程式,先根據L中的單元編號,找到存放列表值的單元,然後更改此單元的內容。由於L1與L中都是編號m,所以兩者同時更改。L2時L的一部分,是新的列表,所以放入不同的單元。

  • 2 # Python之禪

    前面這個是將物件繫結一個新的變數,L1和L還是指向同一個物件,後後者將物件複製一份在賦值給L1,L1指向了新的物件(就是用切片生成的新物件)

  • 3 # 軟體測試開發技術棧

    首先清楚,Python物件的三要素——Id,Type,Value。

    Id:唯一標識一個物件

    Type:標識物件的型別

    Value:物件的值

    然後,看下面程式碼樣例:

    執行結果:

    發現l與l1實際是指向同一個物件,l2指向了新的物件(切片生成的新物件)。

    同時需要二外注意,l1和l2是否相等呢?

    l1 is l2 判斷 l1 物件是否就是l2物件(透過id來判斷)

    l1 == l2 判斷 l1 物件的值是否和 l2 物件的值相等(透過value來判斷)

  • 4 # 外星人玩Python

    一圖勝千語。

    L1指向了原來的list

    而L2指向了一個新的list

  • 中秋節和大豐收的關聯?
  • 如果你能改變你成長的方式,你會去改變什麼?