列表(list):列表是有序的,且可以修改 說明:列表裡面可以存放:數字、字元串、列表、布爾值,可以嵌套任意類型 列表存放元素的原理:通過鏈表的方式 1.創建列表:通過list(列表)類,創建了一個test_list的對象 test_list=["Tom","Mary","Jim","Disk"] ...
列表(list):列表是有序的,且可以修改
說明:列表裡面可以存放:數字、字元串、列表、布爾值,可以嵌套任意類型
列表存放元素的原理:通過鏈表的方式
1.創建列表:通過list(列表)類,創建了一個test_list的對象
test_list=["Tom","Mary","Jim","Disk"]
2.増加列表元素
test_list=["Tom","Mary","Jim","Disk"]
test_list.append("Yu_disk") 預設把"Yu_disk"放到列表最後面的位置
print(test_list)
"""返回結果
['Tom', 'Mary', 'Jim', 'Disk', 'Yu_disk']
"""
2.1向列表中插入元素
需求:在Jim的前面插入["Sir","lady"]
test_list=["Tom","Mary","Jim","Disk"]
test_list.insert(2,["Sir","lady"])
print(test_list)
"""返回結果
['Tom', 'Mary', ['Sir', 'lady'], 'Jim', 'Disk']
"""
3.刪除列表元素
3.1 pop刪除方法
test_list=["Tom","Mary","Jim","Disk"]
test_list.pop(0) 通過位置下標來刪除列表元素
print(test_list)
"""返回結果
['Mary', 'Jim', 'Disk']
"""
3.2 remove刪除方法
test_list=["Tom","Mary","Jim","Disk"]
test_list.remove("Tom") 通過元素名稱來刪除列表中元素
print(test_list)
"""返回結果
['Mary', 'Jim', 'Disk']
"""
3.3 del刪除方法 del是全局參數
test_list = ["Tom", "Mary", "Jim", "Disk"]
del test_list[1] del也是通過列表的位置下標來指定刪除的元素
print(test_list)
"""返回的結果
['Tom', 'Jim', 'Disk']
"""
3.3 del 切片刪除方法 ,切片的結果也是一個列表
test_list = ["Tom", "Mary", "Jim", "Disk"]
del test_list[:2]
print(test_list)
"""返回結果
['Jim', 'Disk']
"""
4.修改列表元素
test_list=["Tom","Mary","Jim","Disk"]
test_list[0]="Zhangxiaoyu" 通過位置下標來修改列表元素
print(test_list)
"""返回結果
['Zhangxiaoyu', 'Mary', 'Jim', 'Disk']
"""
4.2 把列表中"Mary"元素修改成["disk","Yuxianming"]
test_list=["Tom","Mary","Jim","Disk"]
test_list[1]=["disk","Yuxianming"]
print(test_list)
"""返回結果
['Tom', ['disk', 'Yuxianming'], 'Jim', 'Disk']
"""
4.2切片修改列表元素,切片的結果也是一個列表
test_list=["Tom","Mary","Jim","Disk"]
test_list[0:2]="diskaprt","ceshi"
print(test_list)
"""返回結果
['diskaprt', 'ceshi', 'Jim', 'Disk']
"""
5.查找列表元素
test_list=["Tom","Mary","Jim","Disk"]
print(test_list[:-1])
"""返回結果1
['Tom', 'Mary', 'Jim']
"""
print(test_list[:3])
"""返回結果2
['Tom', 'Mary', 'Jim']
"""
print(test_list[-2:-1])
"""返回結果3
['Jim']
"""
6.for和while迴圈
complex_list =["Tom","Mary",["ceshi",1,["d","c",10,"11"],True],"Jim","Disk"]
for index,i in enumerate(complex_list):
print(index,i)
7. in 操作列表
test_list=["Tom","Mary","Jim","Disk"]
v = "yuxianming" in test_list
print(v)
"""返回結果
False
"""
v = "Mary" in test_list
print(v)
"""返回結果
True
"""
complex_list =["Tom","Mary",["ceshi",1,["d","c",10,"11"],True],"Jim","Disk"]
v = ["ceshi",1,["d","c",10,"11"],True] in complex_list
print(v)
"""返回結果
True
"""
練習
複雜列表,多層嵌套
complex_list =["Tom","Mary",["ceshi",1,["d","c",10,"11"],True],"Jim","Disk"]
for item in complex_list:
print(item)
"""返回結果
Tom
Mary
['ceshi', 1, ['d', 'c', 10, '11'], True]
Jim
Disk
"""
需求1:查詢complx_list表中的元素"c"
print(complex_list[2][2][1])
"""返回結果
c
"""
需求2:查詢complx_list表中的元素"ceshi"和1
print(complex_list[2][:2])
"""返回結果
['ceshi', 1]
"""
需求3:刪除complx_list表中的元素10,"11"
del complex_list[2][2][2:]
print(complex_list)
"""返回結果
['Tom', 'Mary', ['ceshi', 1, ['d', 'c'], True], 'Jim', 'Disk']
"""
8.轉換
8.1字元串轉換成列表
str_test="yuxianming_test"
v1=list(str_test)
print(v1)
"""返回結果
['y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
"""
str_test1="1234yuxianming_test"
v2= list(str_test1)
print(v2)
"""返回結果
['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
"""
8.2列表轉換成字元串,如果列表當中包含數字和字元串只能自已寫for迴圈,如果列表只包含字元串可以用join把列表轉換成字元串
"""註意點:for不能迴圈數字"""
list_test1=['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
print(str(list_test1))
"""返回結果:還是列表,轉換不成功
['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
"""
for迴圈列表轉換成字元串
list_test1=['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
count=""
for i in list_test1:
count=count+str(i)
print(count)
"""返回結果
1234yuxianming_test
"""
join把列表轉換成字元串
list_test1=['1', '2', '3', '4', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g', '_', 't', 'e', 's', 't']
v1="".join(list_test1)
print(v1)
"""返回結果
1234yuxianming_test
"""
以下是list類中提供的11個方法(灰魔法)
1.append 追加元素,把追加的值永遠放到最後面
test_list=["Tom","Mary","Jim","Disk"]
test_list.append(123)
test_list.append(["yuxianming","xuhongmei"])
print(test_list)
"""返回的結果
['Tom', 'Mary', 'Jim', 'Disk', 123, ['yuxianming', 'xuhongmei']]
"""
2. clear 清空列表中的元素
test_list=["Tom","Mary","Jim","Disk"]
test_list.clear()
print(test_list)
"""返回的結果
[]
"""
3. copy 複製列表給新的對象
test_list=["Tom","Mary","Jim","Disk"]
test_list1=test_list.copy()
print(test_list1)
"""返回的結果
['Tom', 'Mary', 'Jim', 'Disk']
"""
4.count 統計列表元素的個數
test_list=["Tom","Mary","Jim","Disk","Jim"]
v1 = test_list.count("Jim")
print(v1)
"""返回的結果
2
"""
v2=test_list.count("yuxianming")
print(v2)
"""返回的結果
0
"""
5.index 用於從列表中找出某個值第一個匹配項的索引位置。
test_list=["Tom","Mary","Jim","Disk","Jim","Tom","Mary","Jim"]
v1= test_list.index("Jim",3,-1) 從下標3位置開始一直到-1,第1個出現"Jim"的索引位置是4
print(v1)
"""返回的結果
4
"""
6. insert 函數用於將指定對象插入列表的指定位置。
方法:list.insert(index, obj)
test_list=["Tom","Mary","Jim","Disk"]
test_list.insert(1,"中國") 在索引1的前面插入"中國"
print(test_list)
"""返回的結果
['Tom', '中國', 'Mary', 'Jim', 'Disk']
"""
7.pop 函數用於移除列表中的一個元素(預設最後一個元素),並且返回該元素的值。
test_list=['Tom', '中國', 'Mary', 'Jim', 'Disk']
v=test_list.pop(1) 刪除索引為1的元素
print(test_list)
"""返回的結果
['Tom', 'Mary', 'Jim', 'Disk']
"""
print(v) 獲取刪除的元素
"""返回的結果
中國
"""
test_list.pop() 刪除列表中最後一個元素
print(test_list)
"""返回結果
['Tom', 'Mary', 'Jim']
"""
8.remove 函數用於移除列表中某個值的第一個匹配項。
test_list=["Tom","Mary","Jim","Disk","Jim","Tom","Mary","Jim"]
test_list.remove("Jim") 刪除列表中第一個出現元素為"Jim"的值
print(test_list)
"""返回的結果
['Tom', 'Mary', 'Disk', 'Jim', 'Tom', 'Mary', 'Jim']
"""
9.reverse 函數用於翻轉列表中元素。
test_list=['Tom', 'Mary', 'Jim', 'Disk']
print(test_list)
"""返回的結果
['Tom', 'Mary', 'Jim', 'Disk']
"""
test_list.reverse()
print(test_list)
"""返回的結果
['Disk', 'Jim', 'Mary', 'Tom']
"""
10.extend 擴展原表 此函數內部使用的原理是for迴圈
test_list=['Tom', 'Mary', 'Jim', 'Disk']
test_list.extend(["yuxianming","ceshi"])
print(test_list)
"""返回的結果
['Tom', 'Mary', 'Jim', 'Disk', 'yuxianming', 'ceshi']
"""
test_list=['Tom', 'Mary', 'Jim', 'Disk']
test_list.extend("yuxianming")
print(test_list)
"""返回的結果
['Tom', 'Mary', 'Jim', 'Disk', 'y', 'u', 'x', 'i', 'a', 'n', 'm', 'i', 'n', 'g']
"""
"""註意點
extend 函數是在原表上擴展,而append是追加時是在原表中嵌套列表
"""
test_list.append(["yuxianming","ceshi"])
print(test_list)
"""返回的結果
['Tom', 'Mary', 'Jim', 'Disk', 'yuxianming', 'ceshi', ['yuxianming', 'ceshi']]
"""
11. sort排序,預設為升序排列,也可以指定參數降序排列(reverse=True)
test_list=[11,44,22,33,22]
test_list.sort()
print(test_list) 升序排列
"""返回的結果
[11, 22, 22, 33, 44]
"""
test_list.sort(reverse=True) 降序排列
print(test_list)
"""返回的結果
[44, 33, 22, 22, 11]
"""
sort還有兩個參數先欠著(cmp、key)