python中有很多不同的数据结构,比如list,tuple,set,dic等,为什么我要单独讲set呢。

因为set是一个比较容易被遗忘的数据结构,不光在python中,在C++中也一样,反正我是很少用set。但是用了之后发现set其实很强大的。下面就介绍一下set比较牛逼的几个用处:

找出两个列表中相同的数据

第一反应就是遍历一个列表,拿到所有数据然后再判断在不在第二个列表里。代码如下:

def main():
list1=[1,2,3,4,5]
list2=[3,4,5,6,7]
list3=[]
for each in list1:
if each in list2:
list3.append(each) print list3 if __name__ == '__main__':
main()

如果用set的话,用intersetion()很容易就搞定了,它可以得到两个set的交集

def main():
list1=[1,2,3,4,5]
list2=[3,4,5,6,7]
s1,s2=set(list1),set(list2)
list3=list(s1.intersection(s2))
print list3 if __name__ == '__main__':
main()

同样的方法还有:

s1.union(s2),用来得到两个set的并集。即两个list里所有元素的合集。

s1.difference(s2), 用来得到两个set的差集。即在s1中存在,但在s2中不存在的集合。

s1.symmetric_difference(s2), 它相当于s1.union(s2)-s1.intersection(s2)。即s1和s2中不重复的元素的合集。

最新文章

  1. 重写toString()方法来描述一个类
  2. 使用 itext、flying-saucer 实现html转PDF(转)
  3. 和ef一起使用的一些知识点。
  4. 11.7---叠罗汉表演节目(CC150)
  5. java端口扫描(原创)
  6. 烂泥:NFS存储与VSphere配合使用
  7. ACM对时间掌控力和日积月累的习惯的意义
  8. DotNetBar v12.4.0.2 Fully Cracked
  9. TextView字符串波浪式跳动--第三方开源---JumpingBeans
  10. JavaScript学习笔记(12)——JavaScript内置对象
  11. 遍历INI文件和删除指定域内容
  12. 动态规划---最长上升子序列问题(O(nlogn),O(n^2))
  13. js词法作用域
  14. checkSelfPermission 找不到 Android 动态权限问题
  15. python DNN
  16. POJ 1321 棋盘问题(搜索的方式)
  17. PHP安装Commposer
  18. 【ElasticSearch】:Mapping相关
  19. 【转】linux下各文件夹的结构说明及用途介绍
  20. 绝对路径${pageContext.request.contextPath}用法及其与web.xml中Servlet的url-pattern匹配过程

热门文章

  1. git登陆迁移 SourceTree 不能自动识别
  2. linux配置网关
  3. 简述synchronized和java.util.concurrent.locks.Lock异同
  4. python 解析 XML文件
  5. Express入门教程:一个简单的博客
  6. iOS中nil 、NULL、 Nil 、NSNull
  7. 创建存储过程修改role密码
  8. Java基础语法 - 面向对象 - 局部变量
  9. XML 解析之 dom4j 解析器
  10. Calico相关资料链接