清空list列表有两种方法,1:重新赋值;2:调用del方法。在使用中这两种方法有差别,举个栗子:
#! /usr/bin/env python
#coding=utf-8
li = []
li_change = [1,2,3]
li.append(li_change)
li_change = [4,5,6]
li.append(li_change)
print li #[[1, 2, 3], [4, 5, 6]]
在这种情况下,是第二次给列表li_change赋值,相当于建立一个列表,得到的结果如我们所愿。
现在修改代码,在第二次赋值之前先清空列表,会得到另外一种结果;
#! /usr/bin/env python
#coding=utf-8
li = []
li_change = [1,2,3]
li.append(li_change)
del li_change[:]
li_change = [4,5,6]
li.append(li_change)
print li #[[], [4, 5, 6]]
结果是列表li中第一次进入的值为空,这说明列表里存储的是变量的地址,当变量清空时,会引起事先存储在列表中值的变化。