3.1 列表是什么
列表由一系列按特定顺序排列的元素组成。
你可以创建包含字母表中所有字母、数字0~9或
所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、digits或names)是
个不错的主意。
在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素.
3.1.1 访问列表元素
列表是有序集合,要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
可使用方法title()让元素'trek'的格式更整洁:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title())
3.1.2 索引从 0 而不是 1 开始
- 在Python中,第一个列表元素的索引为0,而不是1.
- Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])
print(bicycles[-1])
这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推。
3.1.3 使用列表中的各个值
可像使用其他变量一样使用列表中的各个值。例如,你可以使用拼接根据列表中的值来创建消息。
>>>bicycles = ['trek', 'cannondale', 'redline', 'specialized']
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 在列表中添加元素
- 在列表末尾添加元素使用方法 append()
- 在列表中插入元素使用方法 insert()
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
motorcycles.insert(0, 'ducati')
print(motorcycles)
最终的列表与前述示例中的列表完全相同:
['honda', 'yamaha', 'suzuki']
['ducati', 'honda', 'yamaha', 'suzuki']
3.2.3 从列表中删除元素的三种方法
- 使用del可删除任何位置处的列表元素,条件是知道其索引。
例如:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
返回:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
- 使用方法pop()删除元素,并接着使用它的值。.弹出列表中任何位置处的元素.使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可,如果不指定元素索引,则默认删除列表末尾的一个元素。
例如:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(popped_motorcycle)
返回:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
再如:
motorcycles = ['honda', 'yamaha', 'suzuki']
popped_motorcycle = motorcycles.pop(0)
print(popped_motorcycle)
则返回:
[ 'yamaha', 'suzuki']
- 根据值删除元素,用方法remove()
例如,假设我们要从列表motorcycles中删除值'ducati'。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
代码让Python确定'ducati'出现在列表的什么地方,并将该元素删除:
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
使用remove()从列表中删除元素时,也可接着使用它的值。只需要把他放在一个变量中,再引用这个变量即可:
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print("\nA " + too_expensive.title() + " is too expensive for me.")
结果如下:
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
A Ducati is too expensive for me.
注意 方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。将在后面学习如何这样做。
网友评论