1. 程式人生 > >列表的操作(增/刪/查/改/切片/合並/);列表的copy

列表的操作(增/刪/查/改/切片/合並/);列表的copy

但是 rem 位置 color 次數 操作 賦值 pri int

# Author:nadech
names = ["cxx", "sjp", "lsw", "dyq", "lsw"]

###循環打印
for name in names:
    print(name)

# 這裏打印的是從起始位置到最後的位置,然後步長為2
print(names[::2])

#########增########
#在末尾增加
names.append("cjl")
print(names)
#在制定位置增加,例如第二個位置
names.insert(1,"cs")
print(names)

########改#######
#在某個位置替換掉某個數據
names[0] = "
cxxxx" print(names) ########刪####### names.remove("sjp") print(names) names.pop() del names[3] print(names) #默認不指定坐標的時候就pop出最後一個,但是也可以制定坐標 names.pop(1) print(names) ########查######### ########切片####### #輸出某個數據就用對應的坐標 print(names[0]) #輸出多個數據,設置起始坐標,顧頭不顧尾 print(names[0:2]) #當想要輸出最後一個數據,卻又不知道對應坐標 print
(names[-1]) #輸出後面的兩個數據,不知道坐標,還是顧頭不顧尾 print(names[-3:-1]) #輸出最後的兩個數據,包含最後一個數據,要用:空代表 print(names[-2:]) ########通過內容找index######### print(names.index("lsw")) print(names[names.index("lsw")]) ######統計某一名字出現的次數 print(names.count("lsw")) #########將一個list合並另一個list names2 = [1, 2, 3, 4 ] names.extend(names2)
print(names) del names2 print(names2) name2 = names.copy() names[0] = "cxxxxxxx" print(names) print(name2)

列表的copy

# Author:nadech
import copy

‘‘‘‘
#淺copy有三種:
name1 = copy.copy(names)
name2 = names[:]
name3 = list(names)
‘‘‘

#name1賦值給name2時,name2直接開辟了新的內存空間,當name1的值改變時,name2並不會改變
name1 = "sjp"
name2 = name1
print(name1)
name1 = "sjpppp"
print(name1)
print(name2)
#names的值copy給names2,但是這是一種淺copy,只能copy第一層:
#當names的第一層數據變時,names2並不會改變
#當names的第二層數據變時,names2會改變,列表中的列表只是一個內存地址的指針
names = ["cxx","sjp","lsw",["ygr","yxk"]]


names2 = names.copy()
names3 = copy.deepcopy(names)

names[0] = "cxxxxxxxx"
names[3][0] = "ygrrrrr"
print(names)
print(names2)


#######深copy######,把names的所有內容clone了一遍
print(names3)
####比較兩個變量的內存地址發現並不是同一個
print(id(names))
print(id(names2))

列表的操作(增/刪/查/改/切片/合並/);列表的copy