博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合与深浅拷贝
阅读量:5232 次
发布时间:2019-06-14

本文共 2309 字,大约阅读时间需要 7 分钟。

一、集合

  1.定义

    元素的集,同一集合下,元素不相同。集合有交集并集等操作。集合是可变的数据类型,但是集合内的元素必须是不可变的。

set1={1,2,3,4}                      #集合内元素不重复set2={(1,2),(3,2),('1','2','3')}    #集合内元素不可变set3=set1                           #集合的定义可以用直接赋值print(set1)print(set2)print(set3)#打印:# {1, 2, 3, 4}# {(1, 2), (3, 2), ('1', '2', '3')}# {1, 2, 3, 4}

  2.操作

set1.add("12")                      #增加有add和updateprint(set1)set2.update((4,7))print(set2)#打印# {1, 2, 3, 4, '12'}# {(1, 2), ('1', '2', '3'), (3, 2), 4, 7}
print(set1.pop() )  #随机删除一个元素,有返回值print(set1)set2.remove((1,2))  #删除指定元素print(set2)set3.clear()        #使成为空集print(set3,type(set3))del set3            #删除集合#打印# 1# {2, 3, 4, '12'}# {(3, 2), 4, 7, ('1', '2', '3')}# set() 
#查for i in set1:    print(i)        #集合内元素也可以迭代,所以可以用for循环打印
#求交集set1.add((3,2))set4=set1 & set2print(set4)set5=set1.intersection(set2)print(set5)# 打印# {(3, 2)}# {(3, 2)}
#求并集set6=set1.union(set2)print(set6)#{(3, 2), 4, 7, ('1', '2', '3')}
#求并集set6=set1.union(set2)print(set6)#{(3, 2), 4, 7, ('1', '2', '3')}set7=set1 | set2print(set7)#{(3, 2), 4, 7, ('1', '2', '3')}
#求并集-交集(补集)set8={1,2,3,4,5,7,6}set9={5,6,7,10,11,12}set10=set8 ^ set9print(set10)set11=set8.symmetric_difference(set9)print(set11)# {1, 2, 3, 4, 10, 11, 12}# {1, 2, 3, 4, 10, 11, 12}
#求一个集合-交集set12=set8-set9print(set12)set13=set8.difference(set9)print(set13)# {1, 2, 3, 4}# {1, 2, 3, 4}#集合不可以加,但是可以减
#判断一个集合是否是另一个集合的子集或超集print(set8 < set9)print(set10 < set8)print(set12 < set8)print(set8 > set13)a=set8.issuperset(set12)b=set8.issubset(set12)c=set13.issuperset(set9)d=set13.issubset(set9)print(a)print(b)print(c)print(d)# False# False# True# True# True# False# False# False
#利用集合的性质去重li=[1,1,2,3,4,4,5,6,7,7]print(li,type(li))se=set(li)print(se,type(se))li=list(se)print(li,type(li))# [1, 1, 2, 3, 4, 4, 5, 6, 7, 7] 
# {1, 2, 3, 4, 5, 6, 7}
# [1, 2, 3, 4, 5, 6, 7]

二、深拷贝与浅拷贝

#浅拷贝,只拷贝地址,样本变了,拷贝内容也变了listm=[1,2,3,4,5,6,6]listx=listmprint(listx)listm.append(9)print(listm)print(listx)
#深拷贝,拷贝内容,样本变了不影响拷贝内容#但要记住import copy,才能调用深拷贝方法import copylisty=copy.deepcopy(listm)listm.append(10)print(listm)print(listy)
#结果# [1, 2, 3, 4, 5, 6, 6]# [1, 2, 3, 4, 5, 6, 6, 9]# [1, 2, 3, 4, 5, 6, 6, 9]# [1, 2, 3, 4, 5, 6, 6, 9, 10]# [1, 2, 3, 4, 5, 6, 6, 9]

 

  

转载于:https://www.cnblogs.com/lowislucifer/p/10957290.html

你可能感兴趣的文章
多线程
查看>>
前端入门4-CSS属性样式表
查看>>
矩形覆盖问题:变相斐波纳契数列
查看>>
iframe、flash引入
查看>>
表单验证实例 转载
查看>>
bzoj 4244 邮戳拉力赛
查看>>
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
查看>>
@Transactionl注解
查看>>
Mysql 慢查询和慢查询日志分析
查看>>
编程的修炼(中英双语)
查看>>
JTS空间分析工具包(GIS开源)学习 JAVA
查看>>
实现对称加密及非对称公钥加密
查看>>
Oracle Null 与 in, exists 的关系说明(not in 查不到结果)
查看>>
一个vue小demo购物车
查看>>
javascript 获取滚动条高度+常用js页面宽度与高度[转]
查看>>
nexus admin 从文件角度进行密码重置
查看>>
2012TI杯电子设计大赛
查看>>
[教程]Delphi 中三种回调函数形式解析
查看>>
HeatMap(热图)的原理和实现
查看>>
[转]室友靠打游戏拿30万offer,秘密竟然是……
查看>>