现在的位置: 首页 > 综合 > 正文

Python set的高效利用

2013年12月01日 ⁄ 综合 ⁄ 共 591字 ⁄ 字号 评论关闭

python set的应用  

找出两个list里面相同的元素

通常我都是这么做的:

>>> a = ["11","22","33"]
>>> b = ["11","33"]

>>> c = []
>>> for i in a:
...     if i in b:
...             c.append(i)
...
>>> c
['11', '33']

这样遍历两个表,效率好慢,现在遇到的问题是,两个list里的元素有好几百万个,用这样的方法去找出相同的元素,要跑好久啊。不过找到了一个简单的方法,并且好快,几百万的数据跑了几秒钟就搞定了,真是个好方法:

>>> a = ["11","22","33"]
>>> b = ["11","33"]
>>> c = set(a)&set(b)
>>> c
set(['11', '33'])

在网上也找了下例子,原来可以做不少的事啊:

>>> x = set('spam')
>>> y = set(['h','a','m'])
>>> x, y
(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))

再来些小应用。

>>> x & y # 交集
set(['a', 'm'])

>>> x | y # 并集
set(['a', 'p', 's', 'h', 'm'])

>>> x - y # 差集
set(['p', 's'])

转载自http://zwlnecy.blog.163.com/blog/static/1608504820098283577786/

抱歉!评论已关闭.