python中复制列表的正确方法
2014-10-21 17:27
399 查看
一、 问题
在写代码的时候,发现对一列表的循环始终不能完全,写法如下:
用来实现输入的数值,除元素‘5’外,其余的数值不能重复,否则报错。
但是上述代码,经过循环删除后,test_list列表是
添加打印后,发现eachEtm元素没有‘6’这项的循环,随后打印列表
此时,添加打印,每轮的parentLst 和test_list 列表元素相同,即for循环检索的列表始终处于变化状态,parentLst 和test_list并非两块独立内存存储。
二、 修改
把
修改为
即可。
三 、原因
这种赋值方式,相当于此列表的一个引用,并没有复制test_list指向的列表;list()是列表构造函数,它会在传入的数列基础上新建列表。
在写代码的时候,发现对一列表的循环始终不能完全,写法如下:
test_list = ['3','4','5','6','4',3','5','5','5','5'] parentLst = test_list for eachEtm in parentLst : if eachEtm == '5': test_list.remove(eachEtm) if len(test_list) != len(list(set(test_list))): .................................
用来实现输入的数值,除元素‘5’外,其余的数值不能重复,否则报错。
但是上述代码,经过循环删除后,test_list列表是
['3','4','6','4',3','5','5']
添加打印后,发现eachEtm元素没有‘6’这项的循环,随后打印列表
test_list = ['3','4','5','6','4',3','5','5','5','5'] parentLst = test_list for eachEtm in parentLst : if eachEtm == '5': test_list.remove(eachEtm) log("parentLst : %s", %parentLst ) log("test_list : %s", %test_list) if len(test_list) != len(list(set(test_list))): .................................
此时,添加打印,每轮的parentLst 和test_list 列表元素相同,即for循环检索的列表始终处于变化状态,parentLst 和test_list并非两块独立内存存储。
二、 修改
把
parentLst = test_list
修改为
parentLst = list(test_list)
即可。
三 、原因
parentLst = test_list
这种赋值方式,相当于此列表的一个引用,并没有复制test_list指向的列表;list()是列表构造函数,它会在传入的数列基础上新建列表。
相关文章推荐
- [Python] 正确复制列表的方法
- [Python]列表复制的几种方法
- python中如何正确的复制列表
- Python-复制列表的几个小方法
- 【Python学习笔记】list/dict对象复制的误区与正确方法
- Python_列表的方法
- dedecms 5.7调用列表时,限制标题长度并显示完整标题title正确调用方法
- Python列表去掉重复元素的一种方法
- [python学习]列表复制
- python列表解析的新方法
- 无法复制 参数不正确,U盘无法复制文件解决方法
- Python学习笔记九:列表(1)--列表元素介绍及创建方法
- python 删掉列表元素 方法
- 【Python百知百问】1.Python浅复制和深复制——copy和deepcopy方法
- Python列表和字典的方法总结
- python列表方法和元组
- python操作列表的方法
- python列表和字典的方法总结
- python字符串、元组和列表常用的一些方法
- python解决字典中的值是列表问题的方法