最新消息:

python两个list获取交集,并集,差集的方法

Python admin 2931浏览 0评论

查阅网上资料,获取python中两个list的交集、并集、差集主要有两种不同的方法,具体哪种方法的效率高还未测试。两种方法具体如下:

测试用例

x=['a', 'c', 'b', 'e', 'd']
y=['b','d','x','y','z']

 

方法一

ps:方法一主要借助集合的特性,先将列表转换为集合,然后简便的获取交集、并集、差集,最后再将结果转换为列表即可。

x=set(x)
y=set(y)

1、交集

 x & y

x.intersection(y)

20131218150539

2、并集

x | y

x.union(y)

20131218150743

3、差集(即在x中有,在y中没有的)

x – y

x.difference(y)

20131218151013

4、XOR 异或(即不同时在两个集合的元素)

x ^ y

20131218151313

 

方法二

1、交集

x=['a', 'c', 'b', 'e', 'd']
y=['b','d','x','y','z']
tmp = [val for val in x if val in y]
print tmp

参考资料:

1、http://www.cnblogs.com/bears/archive/2012/02/02/2335535.html

2、http://www.yihaomen.com/article/python/323.htm

转载请注明:jinglingshu的博客 » python两个list获取交集,并集,差集的方法

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址