找出两个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/