溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python實(shí)現(xiàn)兩個(gè)list求交集,并集,差集的方法示例

發(fā)布時(shí)間:2020-10-04 16:27:29 來源:腳本之家 閱讀:239 作者:bitcarmanlee 欄目:開發(fā)技術(shù)

本文實(shí)例講述了Python實(shí)現(xiàn)兩個(gè)list求交集,并集,差集的方法。分享給大家供大家參考,具體如下:

在python中,數(shù)組可以用list來表示。如果有兩個(gè)數(shù)組,分別要求交集,并集與差集,怎么實(shí)現(xiàn)比較方便呢?

當(dāng)然最容易想到的是對兩個(gè)數(shù)組做循環(huán),即寫兩個(gè)for循環(huán)來實(shí)現(xiàn)。這種寫法大部分同學(xué)應(yīng)該都會(huì),而且也沒有太多的技術(shù)含量,本博主就不解釋了。這里給大家使用更為裝bility的一些方法。

老規(guī)矩,talk is cheap,show me the code

#!/usr/bin/env python
#coding:utf-8
'''
Created on 2016年6月9日
@author: lei.wang
'''
def diff(listA,listB):
 #求交集的兩種方式
 retA = [i for i in listA if i in listB]
 retB = list(set(listA).intersection(set(listB)))
 print "retA is: ",retA
 print "retB is: ",retB
 #求并集
 retC = list(set(listA).union(set(listB)))
 print "retC1 is: ",retC
 #求差集,在B中但不在A中
 retD = list(set(listB).difference(set(listA)))
 print "retD is: ",retD
 retE = [i for i in listB if i not in listA]
 print "retE is: ",retE
def main():
 listA = [1,2,3,4,5]
 listB = [3,4,5,6,7]
 diff(listA,listB)
if __name__ == '__main__':
 main()

讓code run起來

retA is:  [3, 4, 5]
retB is:  [3, 4, 5]
retC1 is:  [1, 2, 3, 4, 5, 6, 7]
retD is:  [6, 7]
retE is:  [6, 7]

結(jié)合代碼來看,大體上是兩種思路:

1.使用列表解析式。列表解析式一般來說比循環(huán)更快,而且更pythonic顯得更牛逼。

2.將list轉(zhuǎn)成set以后,使用set的各種方法去處理。

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python列表(list)操作技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI