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中第一次进入的值为空,这说明列表里存储的是变量的地址,当变量清空时,会引起事先存储在列表中值的变化。
#! /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中第一次进入的值为空,这说明列表里存储的是变量的地址,当变量清空时,会引起事先存储在列表中值的变化。
相关文章推荐
- Python 列表的清空
- python3 -- 列表操作(排序 查找 清空 反转 计数 扩展)
- Python 清空列表
- python清空列表的方法
- Python遍历列表的方法enumerate,以及清空list方法
- 程序员必知的 Python 陷阱与缺陷列表
- 程序员必知的 Python 陷阱与缺陷列表
- python清空列表的方法
- 程序员必知的Python陷阱与缺陷列表
- 程序员老司机都要错的 Python 陷阱与缺陷列表
- 程序员必知的Python陷阱与缺陷列表
- 程序员必知的 Python 陷阱与缺陷列表
- Python 字典和列表陷阱
- python 清空列表
- 程序员必知的 Python 陷阱与缺陷列表
- Python 陷阱与缺陷列表
- JS操作下拉列表(添加,清空,循环值)
- python 获取文件列表(或是目录例表)
- python 参数列表中的self 显式不等于冗余
- 如何清空Visual Studio 2003/2005中的最近项目列表