列表的特征
- 列表使用中括號括起來;
- 列表是有序的,列表的元素可以被修改;
- 列表在內存中實際上是一個鏈形的存儲結構,上一個內容里指向了下一個內容的內存地址;
- 列表的中括號內的內容以逗號分隔,每兩個逗號間是一個整體;
- 內容可以是數字、字符串、列表、布爾值,所有的類都可以放進列表,列表是一個集合;
- 列表中可以嵌套列表,列表可以無限嵌套列表;
- 列表可以使用索引取值;
例一:print(test[3:6]) # 取test列表里的范圍X(3 <= X < 6)的值;
例二:print(test[3]) #取test列表里的第三個索引的值;
例三:嵌套索引取值:找到列表中子列表的子列表的數字
ha = [1,2,3,"hello",[1,[33,55],5],"good"]
v = ha[4][1][0]
print(v)
- 列表可以支持for循環;
- 列表可以支持while循環;
- 列表元素可以被修改;
例一:修改某個內容
ha = [1,2,3,"hello",[1,3,5],"good"]
ha[1] = 5
print(ha)
例二:通過切片的方式修改某幾個內容
ha = [1,2,3,"hello",[1,3,5],"good"]
ha[1:3] = 9,["thanks","you"]
print(ha)
例三:刪除某個內容
ha = [1,2,3,"hello",[1,3,5],"good"]
del ha[1]
print(ha)
例四:通過切換方式刪除某幾個內容
ha = [1,2,3,"hello",[1,3,5],"good"]
del ha[1:3]
print(ha)
- 列表支持in操作
ha = [1,2,3,"hello",[1,[33,55],5],"good"]
for x in ha
print(x)
字符串和列表的互相轉換
- 對於字符串想轉換列表,可以直接轉換(內部使用了for循環);
haha = "sjdfjskldfjsdfjlsdjfksdfwperiuowep"
haha = list(haha)
print(haha)
- 對於既有數字又有字符串的列表要轉換成字符串,需要自己寫for循環;
ha = [1,2,3,"hello",[1,[33,55],5],"good"]
s = ""
for x in ha
s = s + str(x)
print(s)
- 對於只有字符串的列表要轉換成字符串,可以使用簡單辦法,通過join方法;
ha = ["1","2","3","hello","good"]
s = "".join(ha)
print(s)
List功能詳解
- 需求一:在原值后追加(參數是一個整體,將追加的參數整體增加到原值后)
test = [11,22,33,44]
test.append(5)
print(test)
- 需求二:清空列表
test = [11,22,33,44]
test.clear()
print(test)
- 需求三:拷貝--淺拷貝
test = [11,22,33,44]
v = test.copy()
print(v)
- 需求四:計算列表中某一個元素出現的次數
test = [11,22,33,44]
v = test.count(22)
print(v)
- 需求五:擴展原來的列表(參數是可迭代對象,依次循環每一個參數增加到原列表)
test = [11,22,33,44]
v = test.extend([6565,"加油"])
print(v)
- 需求六:根據值去找值的索引,從左往右找,找到以后就停止繼續尋找,參數中的尋找范圍定義的是一個左開右閉的區間;
test = [11,22,33,22,44]
v = test.index(22,3,4)
print(v)
- 需求七:在指定的索引位置插入元素
test = [11,22,33,44]
test.insert(0,99)
print(test)
- 需求八:刪除某個值,並獲取當前值(默認情況刪除最后一個元素),也可根據索引刪除某個值
test = [11,22,33,44]
v = test.pop()
print(test)
print(v)
test = [11,22,33,44]
v = test.pop(1)
print(test)
print(v)
- 需求九:刪除列表中的指定值,從左往右刪除,遇到可以刪除對象后停止刪除
test = [11,22,33,22,44]
test.remove(22)
print(test)
其他的刪除方法還有:pop remove del
- 需求十:將當前列表進行反轉
test = [11,22,33,22,44]
test.reverse()
print(test)
- 需求十一:排序,默認從小到大,有reverse的時候是從大到小
test = [66,88,11,22,33,22,]
test.sort()
print(test)
test = [66,88,11,22,33,22,]
test.sort(reverse=True)
print(test)