《Python编程:从入门到实践》 第 3 章 列表简介
第 3 章 列表简介
3.1 列表是什么
列表由一系列按特定顺序排列的元素组成。可以将任何东西加入到列表中。用复数给列表起名是不错的主意。
1 | bicycles = ['trek', 'cannondale', 'redline', 'specialized'] |
3.1.1 访问列表元素
列表是有序集合,要访问元素,需给出元素的位置。
1 | bicycles = ['trek', 'cannondale', 'redline', 'specialized'] |
3.1.2 索引从0而不是从1开始
列表的第1个元素的索引为0,而不是1。在大多数编程语言中都是如此,这与列表操作的底层实现相关。
1 | bicycles = ['trek', 'cannondale', 'redline', 'specialized'] |
Python 访问最有一个元素的特殊语法,通过将索引指定为-1,可返回最后一个元素:
1 | bicycles = ['trek', 'cannondale', 'redline', 'specialized'] |
这种方式其他负数也可以,-2 返回倒数第二个元素,-3 返回倒数第三个元素。
3.1.3 使用列表中的各个值
1 | bicycles = ['trek', 'cannondale', 'redline', 'specialized'] |
3.2 修改、添加和删除元素
列表是动态的,可以随着程序的运行增删元素。
3.2.1 修改列表元素
1 | motorcycles = ['honda', 'yamaha', 'suzuki'] |
3.2.2 在列表中增加原始
在末尾增加
1
2
3
4
5
6motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
['honda', 'yamaha', 'suzuki']
motorcycles.append('ducati')
print(motorcycles)
['honda', 'yamaha', 'suzuki', 'ducati']在列表中插入元素
1
2
3
4
5
6motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
['ducati', 'honda', 'yamaha', 'suzuki']
3.2.3 从列表中删除元素
使用 del 语句删除元素
1
2
3
4
5
6motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
['honda', 'yamaha', 'suzuki']
del motorcycles[0]
print(motorcycles)
['yamaha', 'suzuki']使用方法 pop() 删除元素,调用 pop() 方法后会返回被删除的元素
1
2
3
4
5
6
7
8motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
['honda', 'yamaha', 'suzuki']
popped_motorcycle = motorcycles.pop()
print(motorcycles)
['honda', 'yamaha']
print(popped_motorcycle)
suzuki弹出列表中任何位置的元素,为 pop() 方法删除任意元素。可以使用 pop() 删除列表中任意位置的元素,只需在括号中指定要删除元素的索引即可。
1
2
3
4
5
6
7
8motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
['honda', 'yamaha', 'suzuki']
popped_motorcycle = motorcycles.pop(1)
print(motorcycles)
['honda', 'suzuki']
print(popped_motorcycle)
yamaha根据值删除元素。如果知道元素值,可使用 remove() 方法删除。
1
2
3
4
5
6
7
8
9motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
['honda', 'yamaha', 'suzuki', 'ducati']
too_expensive = motorcycles.remove('ducati')
print(motorcycles)
['honda', 'yamaha', 'suzuki']
print("\nA " + too_expensive.title() + " is too expensive for me.")
A Ducati is too expensive for me.注意:remove() 方法只删除列表中的第一个指定值。如果要删除的值在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
3.3 组织列表
3.3.1 使用方法 sort() 对列表进行永久性排序
按字母排序(都是小写),使用 sort() 后永久地修改了列表元素的顺序。
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
方向排序,只需向 sort() 方法传递参数 reverse=True。
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
3.3.2 使用函数 sorted() 对列表进行临时排序,不影响原有排序,返回排序后的结果。
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
3.3.3 倒着打印列表
不是按字母排序,仅仅是把列表顺序翻转下。这是永久性的操作,要恢复再调用下 reverse() 即可。
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
3.3.4 确定列表的长度
1 | cars = ['bmw', 'audi', 'toyota', 'subaru'] |
3.4 使用列表是避免索引错误
当列表为空时,使用任何索引值获取列表元素都会返回下面错误消息:
1 | motorcyles = [] |
注意:当发生索引错误缺找不到问题是,可尝试打印列表或其长度。
3.5 小节
本章学习了:什么是列表、列表元素的增删、列表的永久和临时排序、列表长度、如何避免索引错误。