深拷贝、浅拷贝、集合

#set(集合)天生就有去重功能,集合也是无序的
import copy
l=[1,3,2,4,5,6,8]
l2=copy.deepcopy(l) #深拷贝,内存地址不一样
l2=l #浅拷贝,内存地址# 查看内存地址
print(id(l))
print(id(l2))


#结果:内存地址是一样的,属于浅拷贝;修改1个另外1个也会修改;
#浅拷贝和深拷贝的区别就是深拷贝会重新开辟一块内存地址;

#循环删除的时候,会出现下标错误的情况,例如:第一轮循环到下标0,不符合要求,
删除了,那么第二个下标1实际上就变成了下标0,但在循环的时候由于下标0已经循环过一次了,就会从下标1开始继续循环;需要用深拷贝
for i in l:
if i%2!=0:
l2.remove(i)
print(l2)

# s=set() #空集合
# s2=set('123456')
# s3={'1','2','3','4','5','6','7','8','9'}
# 交集、并集、差集
# 就是两个集合相同的地方
# print(s3 & s2) #取交集
# print(s3.intersection(s2)) #取交集
#
# #并集
# #把两个集合合并在一起,然后去重
# print(s2|s3) #取并集
# print(s2.union(s3)) #取并集
#
# #差集
# #取一个集合存在,另一个不存在的元素
# s4={1,2,3}
# s5={1,4,6}
# print(s4-s5) #取差集

#对称差集
# print(s4^s5) #对称差集
# print(s4&s5) #交集
# print(s4|s5) #并集

# s4.add('ss') #加元素
#
# s4.pop() #随机删除一个
#
# s4.remove(2) #指定删除哪个
#
# s4.update({1,2,3}) #增加另1个集合
#
# s4.isdisjoint()
# print(s4)



posted @ 2018-12-22 16:39  小蕊-zr  阅读(164)  评论(0编辑  收藏  举报