Python编程从入门到实践-第三章列表简介
一、列表是什么
列表由一系列按特定顺序排列的元素组成。
在Python中,用方括号( [] )来表示列表,并用逗号来分隔其中的元素。下面是一个简单的列表示例,这个列表包含几种自行车:
bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles)
输出结果是:
1、访问列表元素,索引从0而不是1开始
在Python中,第一个列表元素的索引为0,而不是1。
bicycles = ['trek', 'cannondale', 'redline', 'specialized'] print(bicycles[0])
print(bicycles[1])
print(bicycles[2])
print(bicycles[3])
输出结果:
索引列表最后一个元素,索引指定为-1,可让Python返回最后一个列表元素:
print(bicycles[-1])
二、修改、添加和删除元素
1、修改列表元素
例如,假设有一个摩托车列表,其中的第一个元素为 'honda' ,如何修改它的值呢?
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati' (直接修改列表元素的值)
print(motorcycles)
输出结果
可以看到第一个元素的值被修改了。
2、在列表中添加元素
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.append('ducati')
方法 append() 将元素 'ducati' 添加到了列表末尾,而不影响列表中的其他所有元素
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati') (添加ducati元素到索引0处)
使用方法 insert() 可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。
3、在列表中删除元素
motorcycles = ['honda', 'yamaha', 'suzuki'] del motorcycles[0]
使用 del 可删除任何位置处的列表元素,条件是知道其索引。
motorcycles = ['honda', 'yamaha', 'suzuki'] last_owned = motorcycles.pop() (删除末尾suzuki,并将它存储在last_owned中)
first_owned = motorcycles.pop(0) (删除第一个值honda,并将它存储在first_owned中)
方法 pop() 可删除列表末尾的元素,并让你能够接着使用它。pop() 来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
如果你不确定该使用 del 语句还是 pop() 方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用 del 语句;如果你要在删除元素后还能继续使用它,就使用方法 pop() 。
4、根据值删除元素
有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法 remove() 。
例如,假设我们要从列表 motorcycles 中删除值 'ducati' 。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] print(motorcycles) motorcycles.remove('ducati') (让Python确定 'ducati' 出现在列表的什么地方,并将该元素删除) print(motorcycles)
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati'] a = 'ducati' motorcycles.remove(a) print(a)
注意:方法 remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
三、组织列表
1、使用方法 sort() 对列表进行永久性排序
cars = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort() (按字母顺序排列,从a-z) print(cars) cars.sort(reverse=True) (按字母顺序排列,从z-a) print(cars)
2、使用函数 sorted() 对列表进行临时排序
函数sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(cars) print(sorted(cars)) print(cars)
输出的结果
['bmw', 'audi', 'toyota', 'subaru'] ['audi', 'bmw', 'subaru', 'toyota'] ['bmw', 'audi', 'toyota', 'subaru']
注意,调用函数 sorted() 后,列表元素的排列顺序并没有变。如果你要按与字母顺序相反的顺序显示列表,也可向函数 sorted() 传递参数 reverse=True 。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(cars) q=sorted(cars) (临时正序,不改变原数列) print(q) print(cars) a=sorted(cars,reverse = True) (临时逆序,不改变原数列) print(a) print(cars)
输出结果
3、倒着打印列表
要反转列表元素的排列顺序,可使用方法 reverse() 。
cars = ['bmw', 'audi', 'toyota', 'subaru'] print(cars) cars.reverse() print(cars)
输出结果
注意, reverse() 不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序:
方法 reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用 reverse() 即可。
4、确定列表的长度
使用函数 len() 可快速获悉列表的长度。在下面的示例中,列表包含4个元素,因此其长度为4:
>>> cars = ['bmw', 'audi', 'toyota', 'subaru'] >>> len(cars) 4