python 之 集合 与 深浅拷贝

集合

  • 创建方法仅有一种
  • 无序
  • 去重
  • 关系测试,测试两组数据之前的交集、差集、并集等关系
s=set('carrmee')
print(s) # {'c','a','r','m','e'}

s1 = ['alivin','ee','alivin']
print(set(s1))#去重{'alivin','ee'}
  1. 集合无序,不能进行切片,只能遍历来访问
li=[2,3,'alex']
s=set(li)
print(2 in s)
print('ale' in s)
for i in s:
    print(i)

2.列表增添

s=set('1,3,'carr')
# s.add('u')
# print(s)

# s.add('uu')
# print(s)

# s.update('ops')#把他分开加进去
# print(s)

# s.update([12,'rr'])
# print(s)

# s.remove(2)
# print(s)

# s.pop()
# print(s)

# s.clear()
# print(s)

3.集合的比较

# a = set([1,2,3,4,5])
# b = set([4,5,6,7,8])
#intersection交集
# print(a.intersection(b))#{4, 5}
# print(a & b)

#union并集
# print(a.union(b))
# print(a | b)

#差集
# print(a.difference(b))# in a but not in b
# print(b.difference(a))
# print(a - b)

#对称差集(反向交集)
# print(a.symmetric_difference(b))
# print(a ^ b)

#超集 父
# print(a.issuperset(b))#a>b
# print(a.issubset(b))#a<b

深浅拷贝

# s = [1,'2','pp']
# s2 = s.copy()
# print(s2)
#
# s2[0]=3
# print(s2)

# s = [[1,2],'2','pp']
# s3=s.copy()
# print(s3)

# s3[1]='lin'
# print(s3)
# print(s)
#
# s[0][1]=3
# print(s3)
# print(s)


import  copy # 深拷贝需要导入模块
husband = ["le",123,[20000,10000]] #姓名 id [额度,余额]
wife = husband.copy()#共用一张卡
wife[0] = 'kk'#修改姓名
wife[1] = 555#修改id
wife[2][1] -= 1000#刷了1000
print(wife,husband)

thrid = copy.copy(husband)#深拷贝 与husband不影响
thrid[2][1] -= 2000
print(thrid)

猜你喜欢

转载自blog.csdn.net/baidu_18374165/article/details/81661642
今日推荐