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中不重复的元素的合集。

python中set的用处的更多相关文章

  1. __init__.py在Python中的用处

    1.Python中的package定义很简单,其层次结构与程序所在目录的层次结构相同, 这一点与Java类似,唯一不同的地方在于,python中的package必须包含一个__init__.py的文件 ...

  2. Python中内置数据类型list,tuple,dict,set的区别和用法

    Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...

  3. 浅析python 中__name__ = '__main__' 的作用

    引用http://www.jb51.net/article/51892.htm 很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码 ...

  4. Python中list,tuple,dict,set的区别和用法

    Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...

  5. 【转】浅析python 中__name__ = '__main__' 的作用

    原文链接:http://www.jb51.net/article/51892.htm 举例说明解释的非常清楚,应该是看到的类似博文里面最简单的一篇: 这篇文章主要介绍了python 中__name__ ...

  6. 正则表达式学习与python中的应用

    目录: 一.正则表达式的特殊符号 二.几种重要的正则表达式 三.python的re模块应用 四.参考文献 一.正则表达式的特殊符号 特殊符号可以说是正则表达式的关键,掌握并且可以灵活运用重要的pyth ...

  7. python中if __name__ == '__main__'

    python 中__name__ = '__main__' 的作用,到底干嘛的? 有句话经典的概括了这段代码的意义: “Make a script both importable and execut ...

  8. 【转】python中的lambda函数

    http://www.cnblogs.com/coderzh/archive/2010/04/30/python-cookbook-lambda.html lambda函数也叫匿名函数,即,函数没有具 ...

  9. Python中的map()函数和reduce()函数的用法

    Python中的map()函数和reduce()函数的用法 这篇文章主要介绍了Python中的map()函数和reduce()函数的用法,代码基于Python2.x版本,需要的朋友可以参考下   Py ...

随机推荐

  1. RocketMQ性能压测分析(转载)

    一   机器部署 1.1  机器组成 1台nameserver 1台broker  异步刷盘 2台producer 2台consumer   1.2  硬件配置 CPU  两颗x86_64cpu,每颗 ...

  2. Linux系统中last命令的用法

    1.作用 linux系统中last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户.通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统. 2.格式 last [—R ...

  3. 学习使用turtlebot2——调试Hokuyo激光雷达(型号UST-10LX)

    目标 在ROS上调试使用Hokuyo激光雷达传感器 配置情况     电脑使用Ubuntu 14.04版本,ROS为 Indigo,激光雷达为Hokuyo(型号UST-10LX,网口型接口)   如果 ...

  4. ORACLE的测试用户Scott

    Oracle数据库的测试用户Scott的密码为什么是Tiger? 1977年6月,Larry Ellison 与 Bob Miner 和 Ed Oates 在硅谷共同创办了一家名为软件开发实验室(So ...

  5. cross-origin HTTP request

    w https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS A resource makes a cross-ori ...

  6. root Permission denied

    w 遇见现象,原因待查

  7. 如何查看python的api

    如何查看python selenium的api   经常发现很多同学装好了python+selenium webdriver开发环境后不知道怎么去查看api文档,在这里乙醇简单介绍一下具体方法,其实非 ...

  8. JavaScript四种数值取整方法

    一.Math.trunc() 1.定义 Math.trunc()方法去除数字的小数部分,保留整数部分. 2.语法 Math.trunc(value) 3.示例 console.log(Math.tru ...

  9. 修改hosts文件不起作用

    今天遇到个很奇怪的问题,在hosts文件里添加了一些域名指向后,发现根本没起作用,后来还发现个细节,就是hosts文件左下角有个小锁的标志,开始以为是杀毒软件之类的把他锁了.可是没找到在哪里有相关操作 ...

  10. "零代码”开发B/S企业管理软件之二:怎么创建数据源

    声明:该软件为本人原创作品,多年来一直在使用该软件做项目,软件本身也一直在改善,在增加新的功能.但一个人总是会有很多考虑不周全的地方,希望能找到做同类软件的同行一起探讨. 本人文笔不行,能把意思表达清 ...