有关深浅COPY练习

#ID的练习
#1看代码写结果
v1 = [1,2,3,4,5]
v2 = [v1,v1,v1]
v1.append(6)
print(v1)
print(v2)
#2
v1 = [1,2,3,4,5]
v2 = [v1,v1,v1]
v2[1][0] = 111
v2[2][0] = 222
print(v1)
print(v2)
#3
v1 = [1,2,3,4,5,6,7,8,9]
v2 = {}
for item in v1:
    if item < 6:
        continue
    if 'k1' in v2:
        v2['k1'].append(item)
    else:
        v2['k1'] = [item ]
print(v2)
#4
import copy
v1 = 'alex'
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1 is v2)
print(v1 is v3)
#5
import copy
v1 = [1,2,3,4,5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1 is v2)
print(v1 is v3)
#6
import copy
v1 = [1,2,3,4,5]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[0] is v2[0])
print(v1[0] is v3[0])
print(v2[0] is v3[0])
#7
import copy
v1 = [1,2,3,4,[11,22]]
v2 = copy.copy(v1)
v3 = copy.deepcopy(v1)
print(v1[-1] is v2[-1])
print(v1[-1] is v3[-1])
print(v2[-1] is v3[-1])
#8
v1 = [1,2,3,{'name':'hema','numbers':[7,77,88]},4,5]
v2 = copy.copy(v1)
print(v1 is v2)
print(v1[0] is v2[0])
print(v1[3] is v2[3])
print(v1[3]['name'] is v2[3]['name'])
print(v1[3]['numbers'] is v2[3]['numbers'])
print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
#9
v1 = [1,2,3,{'name':'hema','numbers':[7,77,88]},4,5]
v2 = copy.deepcopy(v1)
print(v1 is v2)
print(v1[0] is v2[0])
print(v1[3] is v2[3])
print(v1[3]['name'] is v2[3]['name'])
print(v1[3]['numbers'] is v2[3]['numbers'])
print(v1[3]['numbers'][1] is v2[3]['numbers'][1])
#12从小到大从大到小翻转排序
l1 = [1,3,6,7,9,8,5,4,2]
print(l1.sort())
print(l1)
print(l1.sort(reverse=True))
print(l1)
print(l1.reverse)
print(l1)
#13代码构建[[' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' ']]
l1 = []
for i in range(3):
    l1.append([])
    for j in range(3):
        l1[i].append(' ')
print(l1)
#14看代码写结果
l1 = [1,2,]
l1 += [3,4]
print(l1)
#15看代码写结果
dic = dict.fromkeys('abc',[])
dic['a'].append(666)
dic['b'].append(111)
print(dic)
原文地址:https://www.cnblogs.com/hemage/p/12580608.html