您的位置:首页 > 编程语言 > Python开发

python 清空列表时的陷阱

2014-06-15 17:04 776 查看
清空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中第一次进入的值为空,这说明列表里存储的是变量的地址,当变量清空时,会引起事先存储在列表中值的变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: