列表的基本操作


列表(list)是包含0個或多個元素的有序序列,屬於序列類型。列表的長度都是可變的,可自由對列表中的元素進行增加、刪除或替換。列表沒有長度限制,元素類型可以不同,可以同時包含整數、實數、字符串等基本類型,也可以是列表、元組、字典、集合以及其他自定義類型的對象,使用非常靈活。

一、列表的創建

創建列表只需將逗號分隔的不同元素使用方括號括起來即可:

>>>animal = ['element','monkey','snake','tiger']	#創建列表
>>>animal	#打印animal
['element','monkey','snake','tiger']

tips:列表的索引從0開始。

二、增加元素

列表由3種增加元素的方法:append()、extend()、insert()

append()

使用append()方法可在列表末尾添加新的元素,語法格式為:list.append(obj),其中,list表示列表,obj表示添加到列表末尾的對象。

>>>add_list =[0,1,2,3]	# 創建列表add_list並賦值
>>>add_list.append(4)	# 使用append()為add_list末尾添加元素4
>>>add_list
[0,1,2,3,4]
extend()

使用extend()方法可在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表),語法格式為:list.extend(seq)。其中,list表示列表,seq表示添加到列表中的元素列表。

list_1 = [1,2,3]
list_2 = [4,5,6]
list_3 = [7,8,9]
list_1.append(list_2)	# 將list_2看作一個對象,整體打包添加到list_1對象中
print(list_1)
list_2.extend(list_3)	# 將list_3看作一個序列,將這個序列和list_2序列合並
print(list_2)

運行結果:

[1,2,3,[4,5,6]]
[4,5,6,7,8,9]

這也是append和extend方法的區別所在。

insert()

使用insert()方法可將指定對象插入到列表的指定位置。語法格式為:list.insert(index,obj),其中list表示列表,index表示對象需要插入的索引位置,obj表示要插入列表中的對象。

>>>number = [1,2,4,5]
>>>number.insert(2,3)	# 使用insert()方法將元素3添加到列表索引為2的位置中
>>>number
[1,2,3,4,5]

三、查找元素與計數

查找元素

所謂在列表中查找元素,就是查看指定的元素是否存在列表中。列表提供index()方法用於返回指定元素在列表中首次出現的位置,如果該元素不在列表中則拋出異常。語法格式為:

list.index(obj)

其中,list表示列表,obj表示要查找的對象。

>>>list = ['tiger','rabbit','cat','dog']
>>>list.index('tiger')
0
計數

要想知道指定元素在列表中出現的次數,可以使用count()方法進行統計,其語法格式為:list.count(obj)其中,list表示列表,obj表示列表中要統計的對象。

>>> x=[1,2,1,2,1,2,1]
>>> x.count(1)	# 使用count()方法統計1在變量x中的出現次數。
4

四、刪除元素

在列表中刪除元素的常用方法有3種:del命令、pop()方法和remove()方法。

del命令

del命令可根據索引/分片的方式刪除列表中的元素。

>>> number = [1,2,3,4,5]
>>> del number[1:3]	# 使用del命令刪除number中索引從1到3(不包括3)的元素
>>> number
[1, 4, 5]
pop()方法

pop()方法用於移除列表中的一個元素(默認為最后一個元素),並且返回該元素的值。

語法格式為:list.pop([obj])

其中,list表示列表,obj為可選參數,表示移除列表元素的索引值,默認為-1,刪除最后一個列表值。

>>> number = [1,2,3,4,5]
>>> number.pop()	# 使用pop()方法刪除number中的元素
5
>>> number
[1, 2, 3, 4]
>>> number.pop(0)	# 使用pop()方法刪除number中索引為0的元素
1
>>> number
[2, 3, 4]
remove()方法

remove()方法用於移除列表中某個值的第一個匹配項。語法格式為:list.remove(obj)。其中,list表示列表,obj表示列表中要移除的對象。

>>> number = [1,2,3,1,2,1,4,1]
>>> number.remove(1)	# 使用remove()方法移除number中第一次出現1的元素。
>>> number
[2, 3, 1, 2, 1, 4, 1]

五、分片賦值

分片賦值就是以分片的形式給序列賦值,可以一次為多個元素賦值。

>>> x=[1,2,3,4]
>>> x
[1, 2, 3, 4]
>>> x[2:]=[5,6,7]	# 替換變量x索引從2開始到最后的元素
>>> x
[1, 2, 5, 6, 7]

分片賦值還可以在不替換任何原有元素的情況下插入新的元素。

>>> x=[1,7]
>>> x[1:1]=[2,3,4,5,6]	# 在變量x中索引1的位置插入列表[2,3,4,5,6]
>>> x
[1, 2, 3, 4, 5, 6, 7]

分片賦值也可以用來刪除元素。

>>> x=[1,2,3,4,5,6,7]
>>> x[1:6]=[]	# 用空列表將x中索引1到索引6之間的元素替換
>>> x
[1, 7]

六、列表排序

reverse()方法

reverse()方法用於將列表中元素反向存放。語法格式為:list.reverse()其中,list表示列表,該方法沒有參數,沒有返回值。

>>> x=[1,2,3,4]
>>> x.reverse()	# 使用reverse()方法將變量x中的元素反向存放
>>> x
[4, 3, 2, 1]
sort()方法

sort()方法用於對原列表進行排序(默認為升序排序),排序后的新列表會覆蓋原列表。

語法格式為:

list.sort([key=None][,reverse=False])

其中,list表示列表;key為可選參數,如果指定了該參數,會使用該參數的方法進行排序;reverse為可選參數,表示是否反向排序,默認為False。

>>> x=['a','abc','ab','abcd']
>>> x.sort(key=len,reverse=True)	# 使用sort()方法對變量x中元素進行長度逆序排序
>>> x
['abcd', 'abc', 'ab', 'a']
sorted()函數

我們也可以使用內置函數sorted()對列表進行排序。與sort()方法不同,內置函數sorted()返回新列表,並不對原列表進行任何修改。

語法格式為:sorted(iterable[,key=None][,reverse=False])

其中,iterable表示可迭代對象,在這里就是列表名;參數key和reverse的用法和sort()方法中的相同。

>>> x=[1,5,2,3,4]
>>> y = sorted(x)	# 將x中的元素升序排列后賦值給變量y
>>> x
[1, 5, 2, 3, 4]
>>> y
[1, 2, 3, 4, 5]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM