欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 賦值與復(fù)制

榮姿康2年前8瀏覽0評論

對于Python語言中的變量賦值與復(fù)制,需要了解幾種基本類型的不同表現(xiàn)。

首先,對于數(shù)字類型、字符串類型等簡單的基本類型,賦值操作不涉及到內(nèi)存地址的操作,即兩個變量指向的相同的數(shù)據(jù)。

a = 10
b = a

上述代碼中,a和b兩個變量都指向數(shù)字10,任意一個變量修改該值,都將影響到另一個變量。

但是,對于List、Dict等可變類型而言,賦值操作實際上只是將兩個變量指向同一塊內(nèi)存地址,因此修改其中一個變量的值,另一個變量的值也會一起被改變。

a = [1, 2, 3]
b = a
b[0] = 0
print(a)  # [0, 2, 3]

所以,這在某些情況下可能會導(dǎo)致很多問題,可以采用淺復(fù)制或深度復(fù)制來解決。

  1. 淺復(fù)制
  2. 淺復(fù)制即將一個可變對象賦值給另一個變量,其中的元素的地址指向原來的可變對象,而不是復(fù)制一個新的對象。可以使用.copy()方法或者[:]進行復(fù)制。

    a = [1, 2, 3]
    b = a.copy()
    b[0] = 0
    print(a)  # [1, 2, 3]
  3. 深度復(fù)制
  4. 深度復(fù)制實際上是創(chuàng)建一個新的可變對象,在其中復(fù)制原來的對象,而不是復(fù)制原來對象的內(nèi)存地址。可以使用copy模塊中的deepcopy()函數(shù)。

    import copy
    a = [1, 2, [3, 4]]
    b = copy.deepcopy(a)
    b[2][0] = 0
    print(a)  # [1, 2, [3, 4]]