欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2018年08月02日 10:54:36   作者:bitcarmanlee  
這篇文章主要介紹了Python實現(xiàn)兩個list求交集,并集,差集的方法,結(jié)合實例形式分析了Python使用intersection、union及difference方法實現(xiàn)兩個集合list的交集、并集與差集操作技巧,需要的朋友可以參考下

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

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

當然最容易想到的是對兩個數(shù)組做循環(huán),即寫兩個for循環(huán)來實現(xiàn)。這種寫法大部分同學應(yīng)該都會,而且也沒有太多的技術(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īng)典教程》及《Python文件與目錄操作技巧匯總

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

相關(guān)文章

最新評論