1.引言

列表是python新手可以直接使用的最强大的Python功能之一,融合了众多重要的编程概念。它可以让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含甚至数百万个元素。

2.列表是什么

列表是一些按特定顺序排列的元素组成的集合。例如,你可以创建包含字母表中所有元素的列表,也可以创建所有家庭成员姓名的列表。列表通常包含多个元素,因此通常给列表指定一个表示复数的名称。

在Python中,用方括号 [] 表示列表,其中的元素用单引号指定,并用逗号分隔。例如列表bicycles自行车种类:

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']

打印列表时也会把方括号打印出来,但这可能不是用户想要看到的输出,因此需要学习如何访问列表元素。

3.访问列表元素

(1)列表是有序集合,因此访问列表只需将元素的位置(索引)告诉Python即可。索引一般从位置0开始,而非通常所理解的1。列表通常包含多个元素,因此通常给列表指定一个复数形式的单词名称。仍以bicycles列表为例:

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles[0])
trek

访问了第0位置的元素,返回值则为该位置上的 trek

(2)列表访问最后一个元素有一种特殊的语法。将索引指定为 -1 可以让Python返回列表最后一个元素:

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles[-1])
specialized

可以理解为:如果记列表大小为size, 由于下标从 0 开始,因此最后一个元素索引是 size - 1,再把size省略,即为 -1。同理,倒数第二个元素索引为 -2,倒数第三个为 -3。

4. 使用列表中的各个值

 对列表的使用可以类比变量。如,用f字符串根据列表中的值来创建消息。

bicycles = ['trek','cannondale','redline','specialized']
message = f"我的第一辆自行车是:{bicycles[0]}"
print(message)
我的第一辆自行车是:trek

变量替换和 f 字符串相关知识

5.修改列表元素

与访问类似,修改列表元素时可指定列表名和要修改的元素的索引,再指定该元素的新值。

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)

bicycles[0] = 'none'
print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']
['none', 'cannondale', 'redline', 'specialized']

6.元素的增删改

(1)列表末尾添加元素

最简单的方式是将元素附加到列表,即append()方法。

bicycles = ['trek','cannondale','redline','specialized']
bicycles.append('none')
print(bicycles)
['trek', 'cannondale', 'redline', 'specialized', 'none']

(2)列表中插入元素

使用insert()方法可以在列表的任何位置添加新元素,需要指定新元素的索引和值。

bicycles = ['trek','cannondale','redline','specialized']
bicycles.insert(0,'none')
print(bicycles)
['none', 'trek', 'cannondale', 'redline', 'specialized']

注意插入的元素位置即为索引的位置,可以理解为,假如插入的位置为0,原本第0号位置的元素向后移动了1位,新插入的元素成为第0位元素。

(3)列表中删除元素

①如果知道指定位置,可使用del语句

bicycles = ['trek','cannondale','redline','specialized']
del bicycles[0]
print(bicycles)
['cannondale', 'redline', 'specialized']

②如果知道元素的值,可使用remove()方法

bicycles = ['trek','cannondale','redline','specialized']
bicycles.remove('trek')#将第一个元素trek删除
print(bicycles)
['cannondale', 'redline', 'specialized']

 注意如果列表中有多个相同值的元素,remove方法只能删除找到的第一个值。想要全部删除需要用到循环。

③如果被删元素还要用到,可以用pop()方法删除,并用一个变量接收pop()删除的元素。没有指定位置的情况下,pop()默认删除列表末尾的元素。也可以在括号中指定删除元素的位置。

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles) #打印原来的列表

popped_bicycle = bicycles.pop()
print(bicycles) #打印pop()删除后的列表
print(popped_bicycle) #打印被删除的元素
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'cannondale', 'redline'] # 原来的列表已经发生改变
specialized

pop()方法来源于栈(一个表示先进先出的数据结构),意为将末尾元素弹出。