在本教程中,我们将通过示例掌握 Python 列表的所有知识,包括列表的重要特性、列表创建、使用切片运算符进行列表操作、各种列表操作等等。此外,我们还将学习嵌套列表。
在 Python 的复合数据类型中,列表是最通用且最常用的数据类型。列表是一种基于序列的数据类型,它包含对象的集合。对象可以是任何类型。
在 Python 中,列表是通过将一系列元素括在方括号 [ ] 中来定义的。每个元素用逗号分隔。列表可以包含任意数量的元素,并且可以是任何类型。以下示例将帮助您理解如何在 Python 中定义列表。
空列表:不包含任何元素的列表,长度为 0。
emp_list =[]
同质列表:包含相同数据类型元素的列表。
int_list =[10,20,30]
.
异构或混合列表:包含不同数据类型元素的列表
mix_list =['Tom',25,5.9]
嵌套列表:包含另一个列表的列表。
Nest_List = [['Apple', 'Apricot'],['Banana','Blueberry'],"Cherry"]
与字符串一样,列表中的项可以通过索引[]运算符或切片运算符[:]来访问。我们可以将列表视为动态数组,因此索引和切片操作在 Python 列表上效果很好。
索引是将数字分配给列表中的项以便于访问的过程。索引始终从零开始,并且必须是整数。
Python 列表中有两种索引方式:
为了彻底理解索引,让我们考虑示例及其可视化。‘LIST’ 是一个 Python 列表,包含元素 ‘RED’、‘BLUE’、‘GREEN’ 和 ‘PINK’。列表中的每个元素根据正向和反向索引分配一个数字,对应于其位置,如下所示。

通过引用索引号,可以访问列表中的单个项。下面的代码显示了如何使用正向索引访问项。
List = ['Red','Blue','Green','Pink']
print("List[0]=",List[0])
print("List[3]=",List[3])
Output:
List[0]= Red List[3]= Pink
Python 列表还支持反向索引以从列表尾部访问项。反向索引始终从列表末尾开始,索引为 -1。
List = ['Red','Blue','Green','Pink']
print("List[-1]=",List[-1])
print("List[-3]=",List[-3])
Output:
List[-1]= Pink List[-3]= Blue
Python 列表也适用于范围切片运算符[:]。在这里,使用切片运算符,我们可以根据需要从列表中切取项目块。简而言之,我们可以使用切片运算符创建子列表。范围切片语法为
L [ m:n]
其中 L 是包含项目的列表
m:起始索引
n:结束索引
L[m:n] 返回从索引 m 到 n 的子列表,但不包括索引 n。
切片本身可以通过正向和反向索引以多种方式完成。切片可以通过将项目放置在索引中间来最好地表示,如下所示。

L[m:n] 的切片返回从位置 m 到 n 的子列表,但不包括索引 n。L = ['Red','Blue','Green','Pink','Grey']
print("L[1:3] =",L[1:3])
L[1:3] = ['Blue', 'Green']
L[:n] 的切片返回从默认起始位置到 n 的子列表,但不包括索引 n。L = ['Red','Blue','Green','Pink','Grey']
print("L[:2] =",L[:2])
L[:2] = ['Red', 'Blue']
L[m:] 的切片返回从位置 m 到结束索引的子列表。L = ['Red','Blue','Green','Pink','Grey']
print("L[2:] =",L[2:])
L[2:] = ['Green', 'Pink', 'Grey']
L[-m:-n] 的切片返回从位置 m 到 n 的子列表,但不包括索引 n。L = ['Red','Blue','Green','Pink','Grey']
print("L[-4:-2] =",L[-4:-2])
L[-4:-2] = ['Blue', 'Green']
L[:n] 的切片返回从默认起始位置到 n 的子列表,但不包括索引 n。L = ['Red','Blue','Green','Pink','Grey']
print("L[:-2] =",L[:-2])
L[:-2] = ['Red', 'Blue', 'Green']
L[-m: ] 的切片返回从位置 m 到结束索引的子列表。L = ['Red','Blue','Green','Pink','Grey']
print("L[-4:] =",L[-4:])
L[-4:] = ['Blue', 'Green', 'Pink', 'Grey']
使列表成为 Python 编程语言中通用数据类型的一个突出特性是“列表是可变的”。这意味着列表可以在创建后进行修改。Python 列表可以通过添加、删除或更改项目来修改。Python 提供了多种修改列表的方法。
与字符串不同,Python 列表可以通过用其他项替换现有项来修改。索引使得通过赋值运算符 = 将新项重新分配到需要更改的位置来轻松替换项。替换列表中项的两种可能方法是:
L = ['Red','Blue','Green','Pink','Grey']
L[0]= 'Yellow'
print('Modified List is :',L)
Modified List is : ['Yellow', 'Blue', 'Green', 'Pink', 'Grey']
L = ['Red','Blue','Green','Pink','Grey']
L[2:4]= ['Orange','Black']
print('List after modificaiton is',L)
List after modificaiton is ['Red', 'Blue', 'Orange', 'Black', 'Grey']
append() 方法用于向 Python 列表添加一个项。语法是 list_name.append(item)LF =['Daisy','Rose']
LF.append('Tulip')
print("List after appending:",LF)
List after appending: ['Daisy', 'Rose', 'Tulip']
extend() 方法用于向 Python 列表添加一系列项。语法是 list_name.extend([item1, item2,…])LF =['Daisy', 'Rose', 'Tulip']
LF.extend(['Orchid','Poppy'])
print("Extend List is:",LF)
Extend List is: ['Daisy', 'Rose', 'Tulip', 'Orchid', 'Poppy']
insert() 方法用于在列表的特定位置插入特定项。insert 方法接受两个参数,一个指定位置,另一个指定项。insert() 的语法是 list_name.insert(index, item)在下面的示例中,项 20 被插入到 LN[2] 的位置。
LN =[ 10,30]
LN.insert(2,20)
print(LN)
[10, 30, 20]
del:删除现有列表中的已知项或删除整个列表本身。语法是 del variable_nameL = ['Red','Blue','Green','Pink','Grey']
del L[2];
print(" List after deleting item at index 2 is:",L)
List after deleting item at index 2 is: ['Red', 'Blue', 'Pink', 'Grey']
remove() 方法:从现有列表中删除一项。语法是 List_name.remove(item_name)。L = ['Red','Blue','Green','Pink','Grey']
L.remove('Blue')
print("List after removing item : Blue is:",L)
List after removing item Blue is: ['Red', 'Green', 'Pink', 'Grey']
pop() 方法:如果提供了索引,则删除指定索引处的项;否则,默认删除并返回最后一个项。语法是 List_name.pop(index)。L=[10, 20, 30, 40, 50]
L.pop(1);
print("List after removing item at index 1 is :",L)
L.pop();
print("List after removing the last item is:",L)
List after removing item at index 1 is : [10, 30, 40, 50] List after removing the last item is: [10, 30, 40]
到目前为止,我们已经学习了列表及其特性。列表的另一个重要特性是其嵌套能力。那么,嵌套是什么意思呢?
嵌套意味着将某物存储在其他事物内部。在 Python 中,嵌套列表是包含另一个列表作为其元素的列表,而该元素又包含另一个列表。
嵌套列表的创建方式与创建列表相同,唯一的区别在于嵌套列表中,一个或多个元素可以是列表。
Nest_List = [['Apple', 'Apricot'],['Banana','Blueberry'],"Cherry"]

为了更好地理解,嵌套列表可以表示为分层结构。

从嵌套列表中访问项与引用多个索引一样简单。我们可以通过正向索引或反向索引来访问项。
NL = ['a',['bb','cc'],'d',['e',['fff','ggg']],'h','i']
print(NL[3])
print(NL[3][1])
print(NL[3][1][0])
print(NL[4])
输出
['e', ['fff', 'ggg']] ['fff', 'ggg'] fff h
让我们参考嵌套列表反向索引的图示。

NL = ['a',['bb','cc'],'d',['e',['fff','ggg']],'h','i']
print(NL[-3])
print(NL[-3][-1])
print(NL[-3][-1][-1])
print(NL[-4])
输出
['e', ['fff', 'ggg']] ['fff', 'ggg'] ggg d
同样,我们可以通过以下方式修改嵌套列表:
NL = ['a',['bb','cc'],'d',['e',['fff','ggg']],'h','i']
NL[1][0]= 0
print(NL)
['a', [0, 'cc'], 'd', ['e', ['fff', 'ggg']], 'h', 'i']
NNL = ['a',['bb','cc'],'d',['e',['fff','ggg']],'h','i']
NL[1].append('xx')
NL[1].insert(0,'yy')
NL[3][1].extend([1,2,3])
print(NL)
['a', ['yy', 'bb', 'cc', 'xx'], 'd', ['e', ['fff', 'ggg', 1, 2, 3]], 'h', 'i']
NL = ['a',['bb','cc'],'d',['e',['fff','ggg']],'h','i']
NL[1].pop(0)
print(NL) #removed items bb
del NL[3][1][0]
print(NL) #removed item fff
NL[3][1].remove('ggg')
print(NL)
['a', ['cc'], 'd', ['e', ['fff', 'ggg']], 'h', 'i'] ['a', ['cc'], 'd', ['e', ['ggg']], 'h', 'i'] ['a', ['cc'], 'd', ['e', []], 'h', 'i']
Python 列表具有一些内置函数,可用于执行一些常规的顺序操作。基本函数制成表格如下,以方便参考。
| 函数 | 描述 |
|---|---|
| len(List) | 返回列表的长度 |
| max(List) | 返回列表中的最大值 |
| min(List) | 返回列表中的最小值 |
| compare(L1,L2) | 比较列表 L1 中的项与列表 L2 中的项 |
| list(seq) | 将元组转换为列表 |
正如在字符串中学习的那样,Python 列表也有运算符可用于执行一些特定操作。以下是最常见的操作,以供更好地理解。
成员运算符用于验证项或子列表是否存在于提供的列表中。相应的结果将是一个布尔值,即 True 或 False。Python 中的两个成员运算符是:
L =[1,2,3,5,6,8]
print("Validation 3 in List is ",3 in L)
print("Validation 4 not in List is",4 not in L)
输出
Validation 3 in List is True Validation 4 not in List is True
L1= ['Red','Orange']
L2= ['Blue','Green']
print("Concatenated List is :",L1+L2)
print("Repeated List is:",L1*3)
输出
Concatenated List is : ['Red', 'Orange', 'Blue', 'Green'] Repeated List is: ['Red', 'Orange', 'Red', 'Orange', 'Red', 'Orange']
我们现在熟悉了一些内置方法,如 insert()、remove()、pop() 等。Python 编程语言中还有一些其他方法可与列表对象配合使用。方法通过点运算符访问,例如 list_name. method_name(parameters)。
基本方法制成表格以方便参考。
| 方法 | 描述 |
|---|---|
| count(p) | 返回列表中作为参数传递的项的出现次数 |
| index(p) | 返回作为参数传递的项的最低索引 |
| append(p) | 将作为参数传递的项追加到列表;将一个项添加到列表的末尾 |
| extend(list) | 通过添加另一个列表来扩展列表。 |
| insert(i,p) | 将特定项插入到指定的索引处,其中 i 是索引值,p 是特定项。 |
| remove(p) | 从列表中移除作为参数传递的项。 |
| pop() | 默认情况下,删除列表中的最后一项并返回列表。 |
| clear() | 删除列表中的所有元素 |
| sort() | 默认按升序对列表项进行排序。 |
| reverse() | 反转列表中的项的顺序 |
| copy() | 返回现有列表的浅副本或虚拟副本。 |