python交并补_python两个列表求交、并、差
在python中,如果有兩個(gè)數(shù)組,分別要求交集,并集與差集,怎么實(shí)現(xiàn)比較方便呢?
當(dāng)然最容易想到的是對(duì)兩個(gè)數(shù)組做循環(huán),即寫(xiě)兩個(gè)for循環(huán)來(lái)實(shí)現(xiàn)。這種寫(xiě)法大部分同學(xué)應(yīng)該都會(huì),而且也沒(méi)有太多的技術(shù)含量,下面介紹一些常用的方法。
# -*- encoding:utf-8 -*-
def diff(listA, listB):
# 交集方法1
retA = [i for i in listA if i in listB]
# 交集方法2
retB = list(set(listA).intersection(set(listB)))
print '---------交集--------'
print 'retA:%s' % retA
print 'retB%s' % retB
# 并集
retC = list(set(listA).union(set(listB)))
print '---------并集--------'
print 'retC:%s' % retC
# 差集 方法1 在B中不在A中
retD = list(set(listB).difference(set(listA)))
print '---------差集方法1--------'
print 'retD:%s' % retD
# 差集 方法2 在B中不在A中
retE = [i for i in listB if i not in listA]
print '---------差集方法2-----'
print 'retE:%s' % retE
if __name__ == '__main__':
listA = [1, 2, 3, 4, 5]
listB = [3, 4, 5, 6, 7]
diff(listA, listB)
結(jié)果如下圖:
image.png
結(jié)合代碼來(lái)看,大體上是兩種思路:
1.使用列表解析式。列表解析式一般來(lái)說(shuō)比循環(huán)更快。
2.將list轉(zhuǎn)成set以后,使用set的各種方法去處理。
總結(jié)
以上是生活随笔為你收集整理的python交并补_python两个列表求交、并、差的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pwm控制的基本原理_单片机PWM控制基
- 下一篇: python dict遍历_python