玩命加载中...
### 6. 判断list是否为空
有两种简便的方法可以用来判断一个已经定义的list是否为空list。
```python
#先定义三个list
list_1 = []
list_2 = [ ]
list_3 = [1]
#第一个方法是通过list的长度来判断是否为空
if len(list_1) == 0:
print 'It is empty!'
else:
print 'It is not empty!'
#第二个方法是使用not
if not list_3:
print 'It is empty!'
else:
print 'It is not empty!'
# 用上面的方法在list_2, list_3上试试吧
```
### 7. list的串联
假设`list_1 = [a, b]`,`list_2 = [c, d]`,我们可以有三种方式得到`list_1`和`list_2`串联,也就是`[a, b, c, d]`。
第一种方法是使用`+`。
```python
list_1 = []
list_2 = list_1 + [1]
print list_2
list_3 = [2, 3, 4] + list_2
list_4 = list_2 + [2, 3, 4]
print list_3, list_4
#再试试+=
list_1 = [1, 2]
list_1 += [4, 8]
print list_1
#注意,即使是添加一个元素,也需要使用[],不然则会报错。
list_1 += [1]
print list_1
list_1 += 1
print list_1
```
第二种方法是使用`.append()`方法。
对于刚刚接触Python的朋友,这里我们需要额外补充一下。Python是一种面向对象的语言,`list`是一个类,所以当我们定义了一个list之后,这个list就是一个对象。`.append()`是`list`这类对象中一个通用的方法。`list_1.append(x)`的作用是在`list_1`的结尾增加元素`x`。当我们调用这个方法时,我们不再需要对`list_1`重新赋值,因为`.append()`这个方法已经改变了`list_1`。
下面的例子我们具体来体会`append`.
```python
list_1 = [1, 2, 3]
list_1.append(4)
print list_1
#append(x)只能在list末尾增加一个元素,而非真正做到将两个list串联。
list_1.append([5, 6])
print list_1
#若希望将list_1和list_2串联,我们可以通过如下for循环实现
list_1, list_2 = [1, 3, 5], [2, 4, 6]
[list_1.append(i) for i in list_2]
print list_1
#特别需要值得注意的是append方法本身并没有返回值,list_1 = list_1.append(x)的操作结果是将list_1赋值为空(并不是空list)。
list_1 = [1, 2]
list_1.append(5)
#此时list_1 = [1, 2, 5]
list_1 = list_1.append(7)
#此时list_1为None。
print list_1
```
第三种方法是使用`.extend()`方法。
与`.append()`类似,这是一种对象方法。若我们需要将`list_2`串联在`list_1`末尾,`list_1.extend(list_2)`;若我们需要将元素`x`串联在`list_1`末尾,`list_1.extend([x])`。
```python
list_1, list_2 = [1, 3, 5], [2, 4, 6]
list_1.extend(list_2)
#此时list_1 = [1, 3, 5, 2, 4, 6]
list_1.extend([9])
#此时list_1 = [1, 3, 5, 2, 4, 6, 9]
#试试下面的操作,list_1,list_2分别是什么。
list_2 = list_1.extend(['finish'])
#此时list_1 = [1, 3, 5, 2, 4, 6, 9, 'finish']
#此时list_2为None。
```