玩命加载中...
# 掌握Python中的list
12个小节,预计用时**72分钟**。掌握Python最常用的数据结构list。
请打开您的电脑,按照步骤一步步完成。
本教程基于**Python 2.7**。
原创者:**batmanX**
|
编辑校对:SofaSofa TeamC
|
谢绝转载,违者侵权。
----
### 0. 环境设置
```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "欢迎加入SofaSofa数据科学社区!"
```
### 1. 定义list
`list`是Python中最常用的数据结构,其作用类似于其他语言中的数组array。用方括号`[ ]`定义一个list。注意`list`在Python中是关键词,所以不能将你的list变量名设置为list。
```python
# 定义一个数值组成的list
list_1 = [1, 2, 3]
print list_1
# 定义一个字符组成的list
list_2 = ['SofaSofa', 'Machine Learning', 'Python', 'Data Science']
print list_2
# 定义一个布尔型组成的list
list_3 = [True, False, False]
print list_3
# 定义一个混合类型的list
list_4 = [2017, 'SofaSofa', 3.1415, True]
print list_4
# 定义一个空list
list_5 = []
```
`len`函数可以返回list的长度,也就是其中元素的个数。
```python
list_1 = [1, True, 'SofaSofa']
print len(list_1)
list_2 = []
print len(list_2)
```
list中的元素可以是数字、字符,也可以是一个list。下面我们就定义了嵌套的list。
```python
list_1 = [1, 2, [2, 3], [3, 4, 5]]
list_2 = [2, 3, list_1]
list_3 = [list_2]
# 想一想list_1, list_2和list_3的长度分别是多少?
print len(list_1), len(list_2), len(list_3)
```
### 2. 读取list中的元素
和很多编程语言一样,Python中的计数也是从0开始,也就是说第k个元素的坐标(index)为k-1。
```python
my_list = [2, 0, 1, 7, 0, 6, 2, 5]
# 读取my_list中的第一个元素
a = my_list[0]
# 读取my_list中的第三个元素
b = my_list[2]
```
通过上面的例子,我们知道了如何正向读取元素。我们也可以很方便的反向读取元素。
```python
# 读取my_list中的最后一个元素
c = my_list[-1]
# 读取my_list中的倒数第二个元素
d = my_list[-2]
```
我们可以用`:`读取list中的多个元素。与读取单个元素不同的是,当我们使用`:`,返回的是一个list。
```python
my_list = [2, 0, 1, 7, 0, 6, 2, 5]
# 输出第2,3,4个元素
print my_list[1:4]
# 输出前4个元素
print my_list[:4]
print my_list[0:4]
# 输出最后3个元素
print my_list[-3:]
```
上面是读取连续的元素,也可以读取非连续的元素。
```python
my_list = [2, 0, 1, 7, 0, 6, 2, 5, 1, 0, 4, 8]
# 输出第2,4,6,8个元素
a = my_list[1:8:2]
print a
# 输出第3,6,9个元素
a = my_list[2:9:3]
print a
# 从第3个元素开始,每3个元素读取一个元素
a = my_list[2::3]
print a
# 每3个元素读取一个元素
a = my_list[::3]
print a
```
上面的例子是取出间距相同的元素,若要任意按照下标取出多个元素,我们可以用`for`循环来做到这一点。
```python
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
# 按顺序取出第2,4,6,8个元素,存放在list_1中
list_1 = [my_list[i] for i in [1, 3, 5, 7]]
# 按顺序取出第4,1,5个元素,存放在list_2中
list_2 = [my_list[i] for i in [3, 0, 4]]
```
利用`:`和`-1`,我们可以将整个list取逆。
```python
my_list = [2, 0, 1, 7, 0, 6, 2, 5, 1, 0, 4, 8]
a = my_list[::-1]
print a
#试试看下面返回什么呢?
a = my_list[::-2]
print a
```
读取嵌套list中的元素。
```python
list_1 = [[1, 2, 3], [2], [4, 5, 2], 2]
#试试看
print list_1[2]
print list_1[2][1]
```