1. 程式人生 > >自定義在列表頭部新增元素的方法,即insert_head 方法

自定義在列表頭部新增元素的方法,即insert_head 方法

class Mylist(list):
    def insert_head(self, n):
        # 下面這種方法是不可行的,在這個方法中insert_head(2)的結果就是[3, 4, 5]
        # L = [n]  # 開闢了新的物件空間
        # for x in self:


        #     L.append(x)
        # print(L)
        # self = L
        # print(self)  

#return self

# 因為這裡返回的物件和原來myl指向的物件是不一樣的,myl.insert_head(2) 不是賦值語句,


        # 因此myl不會指向(繫結)所返回的物件([2,3,4,5]),而是指向[3,4,5]這個物件(地址)

        # 下面兩種方式是可行的,它們都是在原物件插入新的元素,然後myl繫結的物件不變
        # self[0:0] = [n]  # 用切片頭插
        
self.insert(0, n)

myl = Mylist(range(3, 6))
print(myl)

myl.insert_head(2)  # [2, 3, 4, 5]
print(myl)

myl.append(6)
print(myl)

總結在變數和物件的等號賦值過程中,記憶體中將新開闢記憶體空間儲存這個物件,然後(當變數原本指向一個變數時)變數指向的是新的記憶體空間