1. 程式人生 > >列表運用和copy詳解

列表運用和copy詳解

順序 count 效果 clear [1] 列表 循環 rev 特殊字符

import copy

name=["6wangbing","Llingli","#!在","渣渣",["jack","moke"],"liti","liti5"]
#print(name)
#print(name[1:3]) #從左往右顧頭不顧尾
#print(name[-1]) #負數單取從右往左,-1直接取列表最後一個
#print(name[-4:-1]) #負數切片,從左往右顧頭不顧尾
#print(name[-5:]) #省略,從頭到尾

#print(name[:-1]) #省略,從左往右顧頭不顧尾

#name.append("王八") #在末尾增加
#name.insert(2,"烏龜") #插入占位增加
#name[0]="hy" #按照位置修改
#print(name)
#del 刪除
#name.remove("王八") #直接刪除指定
#del name[0] #刪除
#name.pop(1) #無下標數字則默認刪除最後一個

#反轉,順序反過來
#name.reverse()
#print(name)

#查找下標並輸出
#print(name.index("渣渣"))

#print(name[name.index("渣渣")])

#合並
#name1=[1,2,3,4]
#name.extend(name1) #把name1合並,name1仍然單獨存在
#print(name,name1)
#del name1
#print(name) #合並後刪除name1,合並效果依舊

#排序順序:特殊字符,數字,大寫字母,小寫字母,中文
#name.sort()
#print(name)

#清除列表
#name.clear()
#print(name)

#計數列表中有幾個lili
#print(name.count("lili"))

#淺copy,只有第一層數據獨立出來,第二層子列表卻還是共有數據。

#name2=name.copy()
#name[5]="LITI"
#print(name)
#print(name2)
#name[4][0]="JACK"
#print(name)
#print(name2)

#深copy 2層數據全部獨立出來,使用的內存獨立了不互相影響!
#name3=copy.deepcopy(name)
#name[5]="LITI"
#print(name)
#print(name3)
#name[4][0]="JACK"
#print(name)
#print(name3)

#循環列表
#for i in name:
#print(i)

##跳著切片列表
#print(name[0:-1])
#print(name[:])
#print(name[0:-1:2]) #0和-1可以省略效果一樣(單數下標0和-1省略效果相同,雙數下標省略效果不同)
#print(name[::2])

#列表共用一個存儲空間
#name2=name
#name[1]="ooooo"
#print(name,name2)

#字符串和數字不會共享一個存儲空間
#a=1
#b=a
#a=2
#print(a,b)

#淺copy運用 聯合賬號
#person=["name",["saving","100"]]
#p1=person[:]
#p2=person[:]
#p1[0]="alex"
#p2[0]="lili"
#p1[1][1]=50
#print(p1)
#print(p2)

#3種copy方式
#p1=copy.copy(name)
#p2=name[:] # 完全切片(淺copy)
#p3=list(name)

列表運用和copy詳解