码迷,mamicode.com
首页 > 编程语言 > 详细

09_Python深拷贝、浅拷贝

时间:2018-01-29 19:11:39      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:循环列表   错误代码   lis   深拷贝   body   int   []   dict   列表   

一、循环列表,删除其中的元素

l1 = [1,2,3,4,5,6,7]  循环删除奇数位元素

1.正序循环删除,会出现越界情况,所以采用倒叙的方式删除

1 l1 = [1,2,3,4,5,6,7]
2 for i in range(len(l1) - 1,-1,-1):
3     if i % 2 == 1:
4         l1.pop(l1[i])
5 
6 print(l1)

二、循环字典,删除其中的元素

如果循环删除的话,编译器会报  RuntimeError: dictionary changed size during iteration

1 #错误代码
2 #dic = {‘k1‘:‘zhangsan‘,‘k2‘:‘lisi‘,‘k3‘:‘wangwu‘,‘name‘:‘xiaoming‘}  删除带k的key
3 dic = {k1:zhangsan,k2:lisi,k3:wangwu,name:xiaoming}
4 
5 for i in dic:
6     if k in i:
7         del dic[i]
8 
9 print(dic)

真确的方式,是把key放到一个列表中,然后根据列表元素进行删除

 1 #正确的代码
 2 dic = {k1:zhangsan,k2:lisi,k3:wangwu,name:xiaoming}
 3 l1 = []
 4 for i in dic:
 5     if k in i:
 6         l1.append(i)
 7 
 8 for i in l1:
 9     del dic[i]
10 
11 print(dic)

三、深拷贝、浅拷贝

09_Python深拷贝、浅拷贝

标签:循环列表   错误代码   lis   深拷贝   body   int   []   dict   列表   

原文地址:https://www.cnblogs.com/weihengblog/p/8378811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!