第3章
3.1 列表是什么
列表由一系列按特定顺序排列的元素组成的。在Python中,用方括号([])来表示列表,并用逗号来分割其中的元素。
示例:
bicycles = ['trek','cannondale','redline','specialized']
3.1.1 访问列表元素
列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。
例如,从列表bicycles中提取第一款自行车:
bicycles = ['tred','ces']
print(bicycles[0])
输出:
trek
3.1.2 索引从0而不是1开始
在Python中,第一个列表元素的索引为0,而不是1。
Python在访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素:
print(bicycles[-1])
输出:
specialized
3.1.3 使用列表中的各个值
下面从列表中提取第一款自行车,并使用这个值来创建一条消息:
message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)
输出:
My first bicycle was a Trek.
3.2 修改、添加、和删除元素
你创建的大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。
3.2.1 修改列表元素
示例:
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
输出:
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
你可以修改任何列表元素的值,不仅仅是第一个。
3.2.2 在列表中添加元素
1.在列表末尾添加元素
# 在列表末尾添加元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
# 输出
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
2.在列表中插入元素
# 在列表中插入元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.insert(0,'ducati')
print(motorcycles)
# 输出
['honda', 'yamaha', 'suzuki']
['ducati', 'honda', 'yamaha', 'suzuki']
3.2.3 从列表中删除元素
1.使用del语句删除元素(需要知道元素索引)
# 使用del语句删除元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
# 输出
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
2.使用方法pop()删除元素,元素被删除后依然可以正常访问
# pop()方法删除最后一个元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
pop_motorcycles = motorcycles.pop()
print(motorcycles)
# 输出
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
3.弹出列表中任何位置处的元素
# pop()方法删除第一个元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
pop_motorcycles = motorcycles.pop(0)
print(motorcycles)
# 输出
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
4.根据值删除元素,元素删除后依然可以正常访问
# 根据值删除元素
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.remove('suzuki')
print(motorcycles)
# 输出
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
3.3 组织列表(排序)
在你创建的列表中,元素的排序顺序常常是无法预测的,有时候,你希望保留列表元素最初的顺序呈现信息,而有时候又需要调整顺序。
3.3.1 使用方法sort()对列表进行永久性排序
# 根据字母永久性排序
cars = ['bmw','audi','toyota','subaru']
cars.sort()
print(cars)
# 输出
['audi', 'bmw', 'subaru', 'toyota']
# 说明1:方法sort()永久性修改了列表元素的排序顺序。
# 说明2:方法sort(reverse=True)可以反向排序。
3.3.2 使用函数sorted()对列表进行临时排序
# 临时排序
cars = ['bmw','audi','toyota','subaru']
print("Here is the original list: ")
print(cars)
print("Here is the sorted list: ")
print(sorted(cars))
print("Here is the original list again: ")
print(cars)
# 输出
['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']
Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']
# 说明1:调用函数sorted()后,列表元素的排序顺序并没有变。
# 说明2:方法sorted(reverse=True)可以反向排序。
3.3.3 倒着打印列表(反转列表元素顺序)
# 反转列表元素顺序
cars = ['bmw','audi','toyota','subaru']
print(cars)
cars.reverse()
print(cars)
# 输出
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']
# 说明:方法reverse()永久性的修改了列表元素的顺序,但是可以恢复,只需再次调用此方法即可。
3.3.4 确定列表的长度
# 确定列表长度
cars = ['bmw','audi','toyota','subaru']
print(len(cars))
# 输出
4