列表是python以及其他語(yǔ)言中最常用到的數(shù)據(jù)結(jié)構(gòu)之一。Python中使用[]來(lái)創(chuàng)建列表
列表中的每項(xiàng)是可以改變的削锰,這一點(diǎn)區(qū)別于元組
列表的創(chuàng)建,遍歷及增刪改查
#創(chuàng)建
names = ["mike", 'jud', 'huihui', 'wang', 'tian', 'kaggle']
#遍歷
for name in names:
? ? print(name)
#查 切片查
print(names[2])? ? ? ? #打印第三個(gè)名字
print(names[0 : 3])? ? #切片處理毕莱, 打印前三個(gè)
print(names[0 : 10])? ? #當(dāng)切片長(zhǎng)度大于列表長(zhǎng)度器贩,就按照列表長(zhǎng)度切片
print(names[-1])? ? ? ? #輸出列表最后一個(gè),當(dāng)數(shù)字為負(fù)數(shù)時(shí)央串,輸出倒數(shù)第n個(gè)
print(names[2 : 3])? ? #左閉右開(kāi)
print(names[0 : 5 : 1]) #切片操作[start : end : size]切取[start-end)區(qū)間的子序列磨澡,start默認(rèn)值為0 size != 0
print(names[5 : 0 : -3])#和上一個(gè)一樣
print(names[::-1])? ? ? #相當(dāng)于反轉(zhuǎn)
print(names[:])? ? ? ? #相當(dāng)于0-最大長(zhǎng)度
增(append, insert)
names.append('alex')
names.insert(5, 'alvin')
print(names)
改(重新賦值)
names = ['章叁', '李四', '王五', '趙六']
names[2] = "孫三"
names[0 : 2] = ["liu", 'wang']
print(names)
names = ['章叁', '李四', '王五', '趙六']
刪(remove, del, pop(返回值))
names.remove("章叁")
print(names)
del names[0]
print(names)
del names? ? ? ? ? #names變量在內(nèi)存中被析構(gòu)
names = ['章叁', '李四', '王五', '趙六']
names.pop()
print(names)
其他操作 count
lists = ['to', 'be', 'or', 'not', 'to', 'be']
print(lists.count('to'))? ? ? ? ? ? ? ? ? ? ? ? #查詢某個(gè)元素在列表中出現(xiàn)的次數(shù)
extend 該方法可以在列表的末尾一次性追加另一個(gè)序列中的多個(gè)值
lista = [1, 2, 3]
listb = [4, 5, 6]
lista.extend(listb)
print(lista)
#index 該方法用于返回元素在列表中的位置
print(lista.index(3))
#reverse
lista.reverse()
print(lista)
listc = [5, 2, 4, 12, 9, 0]
listc.sort()
print(listc)
#深淺拷貝
names = ['章叁', '李四', '王五', '趙六']
names_copy = ['章叁', '李四', '王五', '趙六']
print(id(names))? ? ? ? #2438619076232
print(id(names_copy))? #2438618956936
for name, name_copy in zip(names, names_copy):
? ? print(id(name), id(name_copy))
#輸出:
#2438618789208 2438618789208
#2438618789296 2438618789296
#2438618789384 2438618789384
#2438618789472 2438618789472
#由此可以看出names_copy的元素的地址和names的元素地址相同,是淺拷貝
print("------------------------")
names_copy[0] = "圖像"
for name, name_copy in zip(names, names_copy):
? ? print(id(name), id(name_copy))
#在執(zhí)行names_copy[0] = "圖像"就會(huì)把原本指向'章叁'的地址的指針质和,指向'圖像'所在的地址
b, d, e, *c = ['1', '2', 3, 4, 5]? ? ? #將列表中的元素賦值給等號(hào)左邊變量稳摄,當(dāng)左邊的變量不能完全接受列表元素,會(huì)存在c列表中
print(type(b), type(d), type(c))
print(b, d, e, c)