[TOC]
*****
# 3.1 列表是什么
列表由一系列按特定顺序排列的元素组成, 可以将任何东西加入列表中,其中的元素之间可以没有任何关系
比如:
```
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
```
## 3.1.1 访问列表元素
```
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
#结果:
trek
```
## 3.1.2 索引从 0 而不是 1 开始
通过将索引指定为-1,可让Python返回最后一个列表元素:
```
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
#结果:specialized
```
# 3.2 修改、添加和删除元素
列表都将是动态的,可以修改、添加和删除元素。
## 3.2.1 修改列表元素
```
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles[0] = 'ducati'
```
## 3.2.2 在列表中添加元素
**1 . 在列表末尾添加元素**
```
motorcycles =['honda', 'yamaha', 'suzuki']
motorcycles.append('ducati')
```
**2 . 在列表中插入元素**
```
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
#输出结果
['ducati', 'honda', 'yamaha', 'suzuki']
```
## 3.2.3 从列表中删除元素
**1 . 使用del语句删除元素**
```
motorcycles = ['honda', 'yamaha', 'suzuki']
del motorcycles[0]
print(motorcycles)
#输出结果
['yamaha', 'suzuki']
```
**2 . 使用方法pop()删除元素**
方法pop()可删除列表末尾的元素
```
motorcycles = ['honda', 'yamaha', 'suzuki']
popped_motorcycle = motorcycles.pop()
print(motorcycles)
#输出结果
['honda', 'yamaha']
```
**3 . 弹出列表中任何位置处的元素**
使用pop()来删除列表中任何位置的元素
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
**4. 根据值删除元素**
假设我们要从列表motorcycles中删除值'ducati'。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
motorcycles.remove('ducati')
**注意**
方法remove()只删除指定的值只删除一次。如果要删除的值在列表中出现多次,就需要 使用循环来判断是否删除了所有这样的值。
# 3.3 组织列表
## 3.3.1 使用方法 sort()对列表进行永久性排序
```
sort()让你能够较为轻松地对列表进行排序,改变了列表原有的结构
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
#cars结果
#['audi', 'bmw', 'subaru', 'toyota']
#逆序排序
cars.sort(reverse=True)
print(cars)
# 对列表元素排列顺序的修改是永久性的
# ['toyota', 'subaru', 'bmw', 'audi']
```
## 3.3.2 使用函数 sorted()对列表进行临时排序
sorted(cars)临时排序,不影响cars中原有元素的储存顺序
## 3.3.3 倒着打印列表
要反转列表元素的排列顺序,reverse(), 方法reverse()永久性地修改列表元素的排列顺序
```
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.reverse()
print(cars)
# 输出结果
# ['subaru', 'toyota', 'audi', 'bmw']
```
## 3.3.4 确定列表的长度
```
cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)
# 结果
# 4
```
**注意**
使用列表时避免数组越界错误