[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
```
**注意**
使用列表時避免數組越界錯誤