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

查阅网上资料,获取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.png

2、并集

x | y

x.union(y)

20131218150743.png

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

x – y

x.difference(y)

20131218151013.png

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

x ^ y

20131218151313.png

方法二

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值