Python列表常用操作,淺拷貝及深拷貝


先看一些基本的操作

names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"]

#打印第一個以及第三個元素
print(names[0],names[2])

切片操作:

print(names[1:3]) #打印下標為1到下標為2的元素內容,第3個元素不會被打印,因為python的切片操作是顧頭不顧尾的
print(names[-2:]) #打印倒數第2個到結尾的元素內容
print(names[:3]) #相當於print(names[0:3])
print(names[-3:-1]) #打印倒數第3個到倒數第1個元素的內容,因為python讀列表時從左到右讀取的
print(names[0:-1:2]) #隔一個元素打印
print(names[::2]) #隔一個元素打印
print(names[:]) # 打印全部元素,相當於print(names)

 

列表自帶的一些函數操作

#增加
names.append("LeiHaidong") #追加一個元素
names.insert(3,"Xinzhiyu") #在指定下標處插入一個元素
#合並一個列表的內容
names2 = [1,2,3,4]
names.extend(names2)

#
names.remove("ChenRonghua")

#del names[1] =names.pop(1)
del names[1] 
names.pop(1) #如果使用names.pop(),默認彈出最后一個元素,並返回最后一個元素的內容
names.clear()#清空列表
del names2 #刪除整個列表

#
names[2] ="XieDi" #直接替代下標為2的元素內容
names.reverse() #元素內容反轉
names.sort()#排序

#
print(names.index("XieDi"))
print(names.count("ChenRonghua")) #統計此內容的元素個數

 淺拷貝以及深拷貝

先看淺拷貝

names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"]

name2 = names.copy() #相當於copy.copy(names)或者name2 = name[:] 或者 names2 = list(names)
print(names)
print(name2)
names[2] = "向鵬"
names[3][0] ="ALEXANDER"

運行結果:


['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen']
['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen']
['4ZhangYang', '#!Guyun', '向鵬', ['ALEXANDER', 'jack'], 'ChenRonghua', 'XuLiangchen']
['4ZhangYang', '#!Guyun', 'xXiangPeng', ['ALEXANDER', 'jack'], 'ChenRonghua', 'XuLiangchen'] #注意向鵬這一項,names2沒有跟着改,而alex這一項全改了

Process finished with exit code 0

.copy()只能進行淺拷貝,復制到第一層,當列表當中還存在列表,就只會直接引用被復制元素的列表地址。

深拷貝

import copy
names = ["4ZhangYang", "#!Guyun","xXiangPeng",["alex","jack"],"ChenRonghua","XuLiangchen"]
name2 = copy.deepcopy(names) #深拷貝
print(names)
print(name2)
names[2] = "向鵬"
names[3][0] ="ALEXANDER"
print(names)
print(name2)

運行結果:

['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen']
['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen']
['4ZhangYang', '#!Guyun', '向鵬', ['ALEXANDER', 'jack'], 'ChenRonghua', 'XuLiangchen']
['4ZhangYang', '#!Guyun', 'xXiangPeng', ['alex', 'jack'], 'ChenRonghua', 'XuLiangchen']

Process finished with exit code 0

 

遍歷列表

for i in names:
    print(i)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM