導航:首頁 > 編程語言 > python數組取交集

python數組取交集

發布時間:2022-08-25 13:38:55

A. python 如何找出兩個list中的相同元素

這個問題有多種解法,最常見的是brute-force 也叫暴力枚舉法,也就是把兩個list當中的每個元素都取出來進行兩兩比較,直到找到相同元素。設第一個數組的長度為n,第二個數組的長度為m,則時間復雜度為O(n*m),空間復雜度為O(1)
但是個問題常見的解決方法是哈希表。在Python當中有Dictionary這種數據類型,其實是一個哈希表。運用這種數據類型,可以迅速檢索到想要的元素。但這種方法需要存儲一組元素,所以時間復雜度為O(n),空間復雜度為O(m)。
以下是程序:
def find_same_element(l1, l2):
dist = {}
for i in l1:
dist[i] = 1
for i in l2:
if dist.get(i) > None:
return i
return None

以下是檢驗
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8]
print find_same_element(l1, l2)
應當輸出None
l1 = [1, 2, '34', 34, 5]
l2 = [4, 7, 8,5]
print find_same_element(l1, l2)
應當輸出5

這個函數只能找到一個共同元素,如果兩個list有多個相同元素則只能輸出中間的一個。

這個問題常見於面試題,屬於最簡單的面試題目。需要給面試官說明的是,
第一,哈希表可以快速檢索元素,
第二,python有獨特的數據類型,
第三,多個共同元素的情況需要面試官告知如何處理,
第四,注意沒有共同元素的時候的輸出(程序中為None但面試官希望你能提出這個問題)

B. Python中list,tuple,dict,set的區別和用法

list 相當於數組
tuple 叫元祖,相當於元素不可變數組,只能讀
dict 名叫字典,我是聽著怪怪的,這東西有點像 json ,又有點像 javascript 中的對象,又有點像 php 中的關聯數組
set 是集合,就是元素不可重復,不分順序。

用法(非全面總結,僅供參考):
一般情況下用 list 足夠了,而資料庫中讀出來的數據集一般是 tuple 形式的,需要明確指定變數名和值對應時,可考慮用 dict ,dict 中的元素是無序的,你一定要通過名稱來取。
list1 和 list2 有共同元素,想取交集怎麼辦呢?這時就要用到 set 了,
交集:set(list1) & set(list2)
並集:set(list1) | set(list2)
差集:set(list1) - set(list2)
集合結果想轉回 list 的話用 list() 函數對集合轉換,如 list(set(list1) & set(list2))
多學習,多練習,總會進步的。
世人無難事,只怕有心人。
專心投入去攻一件事,不成功也難,就算不成功,也學習到大量知識並積累了大量經驗,都是寶貴的。

C. 關於python代碼問題 求兩個txt文件里數字的交集 數字之間用製表符隔開

#-*-coding:utf-8-*-

defreadfile(datafile):
f=open(datafile,'r')
returnf.read()
f.close()

data_a=readfile('a.txt').split(' ')
data_b=readfile('b.txt').split(' ')
res=[]

foriindata_a:
ifiindata_b:
res.append(i)

printres

這段代碼可以實現你說的需求了,試試吧

D. 關於python集合運算

差集 a-b 從集合a中去除所有在集合b中出現的元素集合
並集 a|b 集合a,b中所有不重復的元素集合
交集 a&b 集合a,b中均出現的元素集合
如 a={1,2,3,4} b={2,4,6,8} a集合中減去b中出現的2,4 a-b為{1,3}
a|b 為 {1,2,3,4,6,8} a&b為 a ,b中均出現的{2,4}

E. 關於python數列的交集

混份兒 題主機智

F. python array 兩個數組,求他們裡面元素的交集,並把這些交集的值求和

[i for i in a if i in b]

求和直接sum

G. python基礎教程-集合的常用操作

關於集合這東西,個人感覺在工作中項目工程里,使用到的地方不太大,幾乎沒有,但是作為PYthon的基礎知識之一,我們還是需要完善的學習他,之前寫過一篇「python基礎教程-集合的介紹和使用方法 」我們大概的介紹了一下集合的使用,本經驗作為一個集合的擴展給大家介紹一下集合的常用操作。
0python基礎教程-集合的介紹和使用方法
集合的與操作
我們可以看到集合輸出的效果會有一個set表示。
aaa = [1,2,3]bbb = [3,4,5,6]a_a = set(aaa)b_b = set(bbb)
集合中並集的表示:
k = a_a | b_b
printk
使用一個| 線表示 ,求出2個數的並集。
=========另外一種不同的表達方式================
vip = a_a.union(b_b) #並集print vip
集合中交集的表示 使用 ^ 表示求交集:例如:
k = a_a ^ b_b #交集合
==============
print (a_a.intersection(b_b)) # 求交!!!!
集合中求出不同項目的結果
print (a_a.difference(b_b))
需要單獨說明的是求的是自己的和他人的不同,不是兩者一起的不同,具體看例子輸出效果:
集合中我們可以直接更新一個集合的結果在內存中:
a_a.difference_update(b_b) #求出結果並更新print a_a

H. python如何判斷一個數組裡面的元素是否有相同的

可以對第二個list的元素進行遍歷,檢查是否出現在第二個list當中,如果使用表理解,可以使用一行代碼完成任務。
list1 = [1,2,3,4,5]
list2 = [4,5,6,7,8]
print [l for l in list1 if l in list2]
# [4,5]

如果每一個列表中均沒有重復的元素,那麼還有另外一種更好的辦法。首先把兩個list轉換成set,然後對兩個set取交集,即可得到兩個list的重復元素。

set1 = set(list1)
set2 = set(list2)
print set1 & set 2
# {4,5}

I. python中如何去兩個文件的並集

有時候,為了需求,需要統計兩個 list 之間的交集,並集,差集。查詢了一些資料,現在總結在下面:
1. 獲取兩個list 的交集

#方法一:

a=[2,3,4,5]

b=[2,5,8]

tmp = [val for val in a if val in b]

print tmp

#[2, 5]

#方法二

print list(set(a).intersection(set(b)))

2. 獲取兩個list 的並集

print list(set(a).union(set(b)))

3. 獲取兩個 list 的差集

print list(set(b).difference(set(a))) # b中有而a中沒有的

閱讀全文

與python數組取交集相關的資料

熱點內容
阿里雲伺服器終端在哪裡 瀏覽:144
app紙有什麼用 瀏覽:219
cuteftp命令 瀏覽:502
最開始的編程語言是什麼 瀏覽:757
at遠程命令 瀏覽:490
雲伺服器哪家好點 瀏覽:211
android系統源碼閱讀 瀏覽:924
dumpjava分析工具 瀏覽:678
怎麼下載cpu源碼 瀏覽:154
代碼加密怎麼取消 瀏覽:888
編譯原理代碼在哪裡運行 瀏覽:584
解密攝影pdf 瀏覽:72
演算法編程中級題目 瀏覽:250
c語言編譯器畢業設計 瀏覽:717
醫保卡申請app哪個好 瀏覽:945
阿里雲伺服器上傳源碼 瀏覽:602
營銷管理科特勒pdf 瀏覽:696
願望清單app哪個好 瀏覽:461
安卓外放聲音怎麼解決 瀏覽:195
脈脈app干什麼用的 瀏覽:361