> For the complete documentation index, see [llms.txt](https://lujw666.gitbook.io/learn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lujw666.gitbook.io/learn/python/00-basic/00-bian-liang/01-bian-liang-lei-xing/03-lie-biao.md).

# List（列表）

创建一个列表，只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示：

```python
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
```

## 访问列表中的值

与[字符串的索引](/learn/python/00-basic/00-bian-liang/01-bian-liang-lei-xing/02-zi-fu-chuan.md)一样，列表索引从 0 开始，第二个索引是 1，依此类推。

索引也可以从尾部开始，最后一个元素的索引为 -1，往前一位为 -2，以此类推。

使用下标索引来访问列表中的值，同样也可以使用方括号 \[] 的形式截取字符。

```python
# 下标索引 
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
print( list[-1] )
print( list[-2] )
print( list[-3] )

# 方括号截取
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])
list = ['Google', 'Runoob', "Zhihu", "Taobao", "Wiki"]
print ("list[1]: ", list[1]) # 读取第二位
print ("list[1:-2]: ", list[1:-2]) # 从第二位开始（包含）截取到倒数第二位（不包含）
```

> 以上实例输出结果：\
> red\
> green\
> blue\
> black\
> white\
> yellow\
> \[10, 20, 30, 40]\
> list\[1]: Runoob\
> list\[1:-2]: \['Runoob', 'Zhihu']

## 更新列表

可以对列表的数据项进行修改或更新，也可以使用 append() 方法来添加列表项

```python
list = ['Google', 'Runoob', 1997, 2000]

print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
```

> 以上实例输出结果：\
> 第三个元素为 : 1997\
> 更新后的第三个元素为 : 2001

## 删除列表元素

可以使用 del 语句来删除列表的的元素

```python
list = ['Google', 'Runoob', 1997, 2000]

print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)
```

> 以上实例输出结果：\
> 第三个元素为 : \['Google', 'Runoob', 1997, 2000]\
> 更新后的第三个元素为 : \['Google', 'Runoob', 2000]

## 列表运算符

| Python 表达式                             | 结果                            | 描述         |
| -------------------------------------- | ----------------------------- | ---------- |
| len(\[1, 2, 3])                        | 3                             | 长度         |
| \[1, 2, 3] + \[4, 5, 6]                | \[1, 2, 3, 4, 5, 6]           | 组合         |
| \['Hi!'] \* 4                          | \['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复         |
| 3 in \[1, 2, 3]                        | True                          | 元素是否存在于列表中 |
| for x in \[1, 2, 3]: print(x, end=" ") | 1 2 3                         | 迭代         |

## 嵌套列表

使用嵌套列表即在列表里创建其它列表。

```python
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
```

## 列表内置函数

| 函数                                  | 描述                                |
| ----------------------------------- | --------------------------------- |
| len(list)                           | 列表元素个数                            |
| max(list)                           | 返回列表元素最大值                         |
| min(list)                           | 返回列表元素最小值                         |
| list(seq)                           | 将元组转换为列表                          |
| list.append(obj)                    | 在列表末尾添加新的对象                       |
| list.count(obj)                     | 统计某个元素在列表中出现的次数                   |
| list.extend(seq)                    | 在列表末尾一次性追加另一个序列中的多个值（用新列表扩展原来的列表） |
| list.index(obj)                     | 从列表中找出某个值第一个匹配项的索引位置              |
| list.insert(index, obj)             | 将对象插入列表                           |
| list.pop(\[index=-1])               | 移除列表中的一个元素（默认最后一个元素），并且返回该元素的值    |
| list.remove(obj)                    | 移除列表中某个值的第一个匹配项                   |
| list.reverse()                      | 反向列表中元素                           |
| list.sort( key=None, reverse=False) | 对原列表进行排序                          |
| list.clear()                        | 清空列表                              |
| list.copy()                         | 复制列表                              |

[demo](https://github.com/lujw666/learn/blob/develop/python/00-basic/03-variable/01-variabletype/03-列表.py)
