文章目錄
- 列表的應用與實例
- 1.定義列表
- 2.打印列表
- 3.訪問列表元素
- 4.獲取列表長度
- 5.修改列表中的元素
- 6.添加列表元素
- <1>可以通過`append()`函數在列表尾部添加元素
- <2>可以通過`insert()`函數在列表指定的位置插入一個元素
- <3>可以通過`extend()`函數將一個列表中的每個元素分別添加到另一個列表中
- <4> `append`和`extend`區別
- 7.合併2個列表
- 8.刪除列表元素
- <1>使用`del`語句可以刪除指定的列表元素
- <2>用`列表.pop(i)`方法,其中i是索引位置,刪除指定的列表元素
- <3>用`列表.pop()`方法要刪除列表末尾的元素
- <4> 用`remov()`移除指定的列表元素
- 9.定位列表元素
- 10.遍歷列表元素
- 11.列表排序
- 12.產生一個數值遞增列表
- 13.定義多維列表
- 14.字符串和列表相互轉換
- 15.列表清空
- 16.拷貝列表
- 17.計算列表中某個元素的個數
- 18.根據元素找索引位置
列表的應用與實例
列表(list)是一組有序存儲的數據,具有如下特性:
- 和變量一樣,每個列表都有一個唯一標識它的特性
- 列表中元素的類型可以相同,也可以不同,它支持數字,字符串,列表等
- 每個列表元素都有索引和值兩個屬性,索引是一個從0開始的整數,用於標識原色在列表的位置;值就是元素對應的值
- 列表的第一個元素的索引是0,最後一個元素的索引是列表長度-1
1.定義列表
li=[5,4,8,['red','bule',['小蕊','小張'],'yellow'],'alex',2] #注意li只有6個元素
2.打印列表
print(li)
運行結果
[5, 4, 8, ['red', 'bule', ['小蕊', '小張'], 'yellow'], 'alex', 2]
3.訪問列表元素
print(li[3]) #打印索引3的值
print(li[-1]) #打印最後一個元素
print(li[3:5]) #打印索引3和4的值
print(li[3:-1]) #打印索引3和-1(看見負號就從左數)的值
運行結果
['red', 'bule', ['小蕊', '小張'], 'yellow']
2
[['red', 'bule', ['小蕊', '小張'], 'yellow'], 'alex']
[['red', 'bule', ['小蕊', '小張'], 'yellow'], 'alex']
4.獲取列表長度
可通過len()
函數獲取列表的長度
print(len(li))
運行結果
6
如果一個l列表中一個元素也沒有,就是一個空的列表,它的長度爲0
a=[]
print(len(a))
運行結果
0
5.修改列表中的元素
li[3]=102
print(li)
運行結果
[5, 4, 8, 102, 'alex', 2]
6.添加列表元素
<1>可以通過append()
函數在列表尾部添加元素
列表.append(新值)
li=[5, 4, 8, 102, 'alex', 2]
li.append('love')
print(li)
運行結果
[5, 4, 8, 102, 'alex', 2, 'love']
<2>可以通過insert()
函數在列表指定的位置插入一個元素
列表.insert(插入位置,新值)
li=[5, 4, 8, 102, 'alex', 2]
li.insert(1,0)
print(li)
運行結果
[5, 0, 4, 8, 102, 'alex', 2, 'love']
<3>可以通過extend()
函數將一個列表中的每個元素分別添加到另一個列表中
列表 1.extend(列表2)
a=[5,4,8,['red','bule',['小蕊','小張'],'yellow']]
b=['alex',2]
a.extend(b) #將列表b中的每個元素添加到列表a
print(a)
a=[5,4,8,['red','bule',['小蕊','小張'],'yellow']]
b=['alex',2]
b.extend(a) #將列表a中的每個元素添加到列表b
print(b)
運行結果
[5, 4, 8, ['red', 'bule', ['小蕊', '小張'], 'yellow'], 'alex', 2]
['alex', 2, 5, 4, 8, ['red', 'bule', ['小蕊', '小張'], 'yellow']]
<4> append
和extend
區別
li=[22,33,44,55]
li.append([666,'不得了'])
print(li)
運行結果
[22, 33, 44, 55, [666, '不得了']]
li=[22,33,44,55]
li.extend([666,'不得了']) #擴展源列表 參數是:可迭代對象 相當於進行了for循環遍歷擴充的元素
print(li)
li=[22,33,44,55]
li.extend('不得了') #擴展源列表 參數是:可迭代對象
print(li)
運行結果
[22, 33, 44, 55, 666, '不得了']
[22, 33, 44, 55, '不', '得', '了']
extend
相當於進行了for
循環遍歷擴充的元素
7.合併2個列表
可以使用“+”
運算符將兩個列表合併,並得到一個新的列表
a=[1,2,3]
b=[3,4,5]
c=a+b
print(c)
運行結果
[1, 2, 3, 3, 4, 5]
注意:
- 合併兩個列表並不會把相同的元素消減一個
"+"
和extend()
的區別:"+"
生成的新列表會有一個新地址而extend()
只是把其中一個列表添加到另一個列表中,最後生成的新列表地址並不會改變
8.刪除列表元素
<1>使用del
語句可以刪除指定的列表元素
del 列表名[索引]
a=[1,2,3,4]
del a[0]
print(a)
b=[1,2,3,4,5]
del b[1:4] #刪除索引爲1,2,3的元素
print(b)
運行結果
[2, 3, 4]
[1, 5]
<2>用列表.pop(i)
方法,其中i是索引位置,刪除指定的列表元素
a=[1,2,3,4]
a.pop(0)
print(a)
運行結果
[2, 3, 4]
<3>用列表.pop()
方法要刪除列表末尾的元素
a=[1,2,3]
a.pop()
print(a)
運行結果
[1, 2]
<4> 用remov()
移除指定的列表元素
li=[11,22,33,22]
li.remove(22) #當列表裏有相同的元素時,它會自動從左往右找直到找到第一個對的元素並刪除
print(li)
運行結果
[11, 33, 22]
9.定位列表元素
使用index()
函數獲取列表中某個元素的索引
列表.index(元素值)
a=[1,2,3]
print(a.index(2))
運行結果
1
10.遍歷列表元素
<1>使用for
語句
L=[1,2,3,4]
for i in L:
print(i)
運行結果
1
2
3
4
<2>使用for
語句和range()
函數
for i in range(len(list)):
print(list[i])
for i in range(len(L)):
print(L[i])
運行結果
1
2
3
4
<3>使用for
語句和enumerate()
函數同時遍歷列表的元素索引和元素值
for 索引, 元素值 in enmuerate(list):
訪問索引和元素值
for index,value in enumerate(L):
print("第%d個元素值是[%s]"%(index,value))
運行結果
第0個元素值是[1]
第1個元素值是[2]
第2個元素值是[3]
第3個元素值是[4]
11.列表排序
列表排序操作是按列表元素值的升序、降序或反序重新排列列表元素的位置
<1>使用sort()
函數對列表進行升序排列
列表.sort()
li=['apple','banana','pear','grape']
li.sort()
print(li)
運行結果
['apple', 'banana', 'grape', 'pear']
<2>使用reverse()函數對列表進行反序排列
li=['apple','banana','pear','grape']
li.reverse()
print(li)
運行結果
['grape', 'pear', 'banana', 'apple']
<3>降序
如果想對列表進行降序排列,可以先進行升序排列然後再反序排列一下即可
li=['apple','banana','pear','grape']
li.sort()
li.reverse()
print(li)
運行結果
['pear', 'grape', 'banana', 'apple']
12.產生一個數值遞增列表
使用range()
函數可以產生一個數值遞增列表
range(start,end)
參數說明:
start
:一個整數,指定產生的列表的其實元素值,start
爲可選參數,默認值爲0end
:一個整數,指定產生的列表的結束元素值range()
函數返回一個列表,該列表由從start
開始至end
結束(不包含end
)的整數組成
list1=range(10)
list2=range(11,20)
for index,value in enumerate(list1):
print("list1的第%d個元素值是[%s]"%(index,value))
for index,value in enumerate(list2):
print("list2的第%d個元素值是[%s]"%(index,value))
運行結果
list1的第0個元素值是[0]
list1的第1個元素值是[1]
list1的第2個元素值是[2]
list1的第3個元素值是[3]
list1的第4個元素值是[4]
list1的第5個元素值是[5]
list1的第6個元素值是[6]
list1的第7個元素值是[7]
list1的第8個元素值是[8]
list1的第9個元素值是[9]
list2的第0個元素值是[11]
list2的第1個元素值是[12]
list2的第2個元素值是[13]
list2的第3個元素值是[14]
list2的第4個元素值是[15]
list2的第5個元素值是[16]
list2的第6個元素值是[17]
list2的第7個元素值是[18]
list2的第8個元素值是[19]
13.定義多維列表
可以將多維列表視爲列表的嵌套,即多維列表的元素值也是一個列表,只是比其父列表少一個維度;二維列表的元素值是一維列表,三維列表的值是二維列表,以此類推
<1> 定義二維列表
list=[['內存','CPU'],['硬盤','聲卡']]
<2> 遍歷二維列表
for i in list:
print(i)
for i in range(len(list)):
print(list[i])
運行結果
['內存', 'CPU']
['硬盤', '聲卡']
['內存', 'CPU']
['硬盤', '聲卡']
<3>使用嵌套for
語句打印二維列表的每一個元素
for i in range(len(list)):
list1=list[i]
for j in range(len(list1)):
print(list1[j])
運行結果
內存
CPU
硬盤
聲卡
<4>使用嵌套兩個索引訪問二維列表的每一個元素
for i in range(len(list)):
for j in range(len(list[i])):
print(list[i][j])
運行結果
內存
CPU
硬盤
聲卡
14.字符串和列表相互轉換
<1>字符串轉成列表
L='dshiauchj'
new_L=list(L)
print(new_L)
運行結果
['d', 's', 'h', 'i', 'a', 'u', 'c', 'h', 'j']
<2>列表轉換成字符串
(1) 如果列表裏全都是字符串
“”.join(列表)
li=['123','alex']
v="".join(li)
print(v)
運行結果
123alex
(2) 如果列表裏既有字符串還有數字
需要自己寫一個for
循環一個一個處理
li=[1,2,123,'alex']
s=""
for i in li:
s+=str(i)
print(s)
運行結果
12123alex
15.列表清空
列表.clear()
li=[1,2,3,'alex']
li.clear()
print(li)
運行結果
[]
16.拷貝列表
列表.copy
li=[1,3,'alex']
new_li=li.copy()
print(new_li)
運行結果
[1, 3, 'alex']
17.計算列表中某個元素的個數
列表.count()
li=[1,2,3,2,2,5]
v=li.count(2)
print(v)
運行結果
3
18.根據元素找索引位置
列表.index()
當列表裏有相同的元素時,它會自動從左往右找直到找到,後面的元素不予理睬
li=[11,22,33,22,44]
v=li.index(11)
print(v)
v=li.index(22) #當列表裏有相同的元素時,它會自動從左往右找直到找到,後面的元素不予理睬
print(v)
運行結果
0
1