集合

int float list  dict tuple set
集合天生去重

循环删LIST里面的数据的时候,结果会不正确
a=[1,1,2,3,4,5,6,8]
0 1 2 3 4 5 6 7

for i in a:
if i%2!=0:
a.remove(i)
print(a)


第一轮 (删除的时候LIST已经变了,第一轮是0 第二轮到下标为1
[1,2,3,4,5,6,8]
#0 1 2 3 4 5 6 #下标改变了


复制一个一模一样的,循环a2,删除a里的元素,就不会有错
a=[1,1,2,3,4,5,6,8]
a2=[1,1,2,3,4,5,6,8]

浅拷贝和深拷贝的区别就是深拷贝会重新开辟一个内存空间
print(id(a))
print(id(a2))

for i in a2:
if i%2!=0:
a.remove(i)
print(a)

import copy
#浅拷贝
#深拷贝

a2=copy.deepcopy(a) #深拷贝
a2=a #浅拷贝——内存地址是相同的,指向的是同一个内存地址
print(id(a))
print(id(a2)) #浅拷贝和深拷贝的区别就是深拷贝会重新开辟一个内存空间


集合天生去重,集合也是无序的
s=set() #定义一个空集合
s2=set('12344455667789')
print(s2)
s3={'1','1','3','4','5','6','7'} #集合
d={'k':'v'} #字典


交集 并集 差集
就是两个集合相同的地方
print(s3 & s2) #取交集
print(s3.intersection(s2)) #取交集
并集————把两个集合并到一起,然后去重
print(s2|s3)#取并集
print(s2.union(s3))#取并集

差集————s4里面有,s5里没有的
取一个集合存在,另一个集合不存在的元素
s4={1,2,3}
s5={1,4,6}
print(s4-s5)
print(s4.difference(s5))

对称差集————两集合里面都没有(去掉两集合里面都有的)
print(s4^s5)
print(s4.symmetric_difference(s5))

s4.add('ss') #加元素
print(s4)
s4.pop() #随机删一个
print(s4)
s4.remove('ss')#指琮删除哪个
s4.update({9,5,5})#把另外一个集合加进去

print(s4)
原文地址:https://www.cnblogs.com/jiadan/p/8763536.html