•3.1 列表是什么
列表(list)由一系列按特定顺序排列的元素组成,使用方括号来标识,用逗号分隔其中的元素,元素之间可以没有任何关系。
建议给列表指定一个表示复数的名称(如 letters、digits)
bikes = ['trek', 'redline', 'giant']
print(bikes)
运行结果
['trek', 'redline', 'giant']
3.1.1 访问列表元素
特别的火车头,
小心差一错误!
bikes = ['trek', 'redline', 'giant']
print(bikes[0])
print(bikes[2], bikes[-1])
运行结果
trek
giant giant
3.1.2 列表索引
3.1.3 使用列表中的各个值
和其他变量一样,我们可以使用列表中的各个值 例如,在 f-字符串中,我们可以根据列表中的值来创建消息:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = f"My first bicycle was a {bicycles[0].title()}."
print(message)
我们使用 bicycles[0] 的值(第一款自行车)生成了一个句子,并赋值给 message,程序的输出如下:
运行结果
My first bicycle was a Trek.
•3.2 修改、添加和删除元素
3.2.1 修改列表元素
要修改列表元素,我们需要指定列表名和要修改的元素的索引,再指定该索引位置的新值。 列如,我们可以修改摩托车列表中的第一个值:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
3.2.2 在列表中添加元素
我们随时可以在列表中添加新元素
lst.append(val) :在列表的末尾添加新元素。
lst.insert(idx, val):在列表的指定位置上添加新元素。
bikes = []
bikes.append('redline')
bikes.insert(0, 'trek')
print(bikes)
3.2.3 从列表中删除元素
我们可以删除列表中指定索引的元素
del lst[idx] :删除列表中指定索引的元素
bikes = ['giant', 'trek', 'redline']
del bikes[0]
print(bikes)
lst.pop([idx]) -> val:删除并返回列表中指定索引(默认为末尾) 的元素,弹出(pop)的值能被接着使用
bikes = ['giant', 'trek', 'redline']popped_bike = bikes.pop(0)
print(bikes.pop())
print(bikes)
print(popped_bike)
我们也可以根据值来删除列表中的元素 lst.remove(val):删除列表中匹配到的第一个指定元素。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
too_expensive = 'ducati'
motorcycles.remove(too_expensive)print(motorcycles)
print(f"\nA {too_expensive.title()} is too expensive for me.")
•3.3 管理列表
排序
我们可以通过下面的方法/函数来对列表排序
lst.sort() :永久修改原列表,对其中的元素进行排序。
sorted(lst) -> lst':返回排序后的列表的副本。
nums = [9, 6, 1, 4, 2]
print(sorted(nums))
print(nums) # 原列表不变# 列表排序(默认正序)
nums.sort()print(nums)
# 列表排序(指定倒序)
nums.sort(reverse=True)print(nums)
反转
我们可以通过下面的方法来反转列表 lst.reverse():永久修改原列表,对其中的元素进行翻转。
nums = [9, 6, 1, 4, 2]
nums.reverse() # 翻转列表
print(nums)
reverse() 方法会永久地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序:只需对列表再次调用 reverse() 即可。
获取长度
使用 len() 函数可以快速获悉列表的长度: len(lst) -> num:获取列表的元素个数。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(len(cars))
这个函数很有用,可以帮助我们明确还有多少个外星人未被消灭,确定需要管理多少项可视化数据,计算网站有多少注册用户,等等。
小技巧:终端中会自动对输入的最后一行调用 print() 函数,所以如果你是在终端中尝试运行,可以省略最后的 print() 函数:
•3.4 避免索引错误
小心索引错误!——列表的索引是从 0 开始的,而不是从 1 开始。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[3])
不要大意,索引错误很常见,尤其是差一错误!
•3.5 小结
学习了列表是什么,以及如何使用其中的元素。 学习了如何定义列表,如何增删元素,以及如何对列表进行永久排序和临时排序。 学习了如何获得列表的长度,以及如何在使用列表时避免索引错误。 在下一章中,我们将学习更多关于列表的相关知识,尤其是如何以更高效的方式处理列表元素。