您好,登錄后才能下訂單哦!
小編給大家分享一下python如何實現(xiàn)列表中的增操作,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
列表中的增
對列表的增加操作有兩種,一種是創(chuàng)建一個新的列表,一種是在一個已有的列表中增加一個新元素。我們首先介紹如何創(chuàng)建一個新的列表:
# 創(chuàng)建一個空列表 list1 = [] # 創(chuàng)建一個默認(rèn)值為0,長度為n的列表 list2 = [0] * n # 利用列表生成式創(chuàng)建列表 list3 = [i for i in range(10)] # 5*5 二維列表 list4 = [[i for i in range(5)] for j in range(5)] # 利用其他數(shù)據(jù)結(jié)構(gòu)生成列表, list() 函數(shù)接收一個可迭代對象作為參數(shù) tuple1 = (1, 2, 3) list5 = list(tuple1) # 字符串轉(zhuǎn)化為列表 str1 = "I love code" # 每個元素作為列表中的一個元素 list6 = list(str1) # 按照指定字符分割 list7 = str1.split(" ") # ['I', 'love', 'code']
在編程過程中,有時我們需要對一個列表進(jìn)行操作,但是列表是一個可變對象,對列表的操作往往會改變其本來的順序結(jié)構(gòu)。因此,當(dāng)我們不想改變列表原有的順序結(jié)構(gòu),我們需要對舊的列表進(jìn)行一個拷貝,然后在新的列表上進(jìn)行操作??截惔嬖趦煞N,淺拷貝和深拷貝。可能有人會對這兩種拷貝存在疑問,他們得到的列表的形式不是一樣的嘛?
是的,它們在拷貝后得到的列表形式確實是一樣的。但是在進(jìn)行操作時,就會有很大的差別了,特別是當(dāng)你的列表中存在可變對象時。我們只需要記住一點(diǎn),淺拷貝只復(fù)制不可變對象,而深拷貝不僅復(fù)制不可變對象,還復(fù)制了可變對象。以下進(jìn)行舉例說明:
# 如果一個列表中的元素都是不可變對象,可以直接用淺拷貝 list1 = [1, 2, 'i'] list2 = list1[::1] # 淺拷貝 list3 = [i for i in list1] # 淺拷貝 import copy list4 = copy.copy(list1) # 淺拷貝 # 如果一個列表中的元素包含可變對象,要完成復(fù)制列表,需要用深拷貝 list5 = ["Will", 1, ["Python", "Java", "C++"]] list6 = copy.deepcopy(list5)
為什么在包含不可變對象的時候,需要用到深拷貝呢?
上面我們說過,淺拷貝只拷貝不可變對象。當(dāng)列表中存在可變對象時,我們可以發(fā)現(xiàn)其引用 id 是一樣的,即它們是同一個對象,因此對 list5 的操作會影響到 list6 。而在深拷貝中,對于可變對象,在拷貝的新列表中會生成一個新的對象,所以對 list6 的修改不會影響到 list5 。
id(list5[2]) # 2195936916360 id(list6[2]) # 2195936916744
對列表的另一種增加操作就是在已有的列表的基礎(chǔ)上增加元素了,主要包括以下幾種操作:
list1 = ["I"] # 在列表尾部增加一個新元素 list1.append("love") # 合并兩個列表 list2 = ["Apple", 3] list1.extend(list2) # ["I", "love", "Apple", 3] list1 = list1 + list2 # ["I", "love", "Apple", 3] # 在指定位置插入元素 list1.insert(index=1, "not") # ["I", "not", "love", "Apple", 3]
以上是“python如何實現(xiàn)列表中的增操作”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。