目錄
什麼是列表?
列表中的對稱差異
演算法
範例
輸出
使用列表理解
不使用set()
使用對稱差
結論
首頁 後端開發 Python教學 Python程式計算兩個列表之間的對稱差集

Python程式計算兩個列表之間的對稱差集

Aug 28, 2023 am 08:57 AM
python 程式 對稱差集

Python程式計算兩個列表之間的對稱差集

在Python中,可以使用清單將多個項目保存在單一變數中。 Python 中用於儲存資料集合的四種內建資料類型之一是清單;另外三個是元組、集合和字典,每一個都有獨特的用途。

什麼是列表?

方括號用於建立清單。 Python 中最有效的工具是列表,因為它們不一定是同類的。像整數、字串和物件這樣的資料類型都可以在一個列表中找到。由於清單是可變的,因此即使在建立清單之後也可以對其進行變更。

列表中的對稱差異

在 LIST1 或 LIST2 中但不在兩者中的元素集構成了兩個列表 LIST1 和 LIST2 之間的對稱差異。

在 python 中計算兩個列表之間的對稱差異有多種方法,我們將採用最有效的方法來找出相同的差異。

我們已將列表轉換為集合,然後在這些集合之間進行對稱差異。

演算法

  • 建立清單

  • 將清單轉換為集合

  • #列印轉換後集合的對稱差

  • 列印清單的對稱差

#範例

在下面的程式中,使用「in」我們可以找到兩個清單之間的差異。 in 關鍵字有兩個功能。

  • 確定某個值是否存在於字串、清單、元組、範圍等。

  • 在 for 迴圈中重複遍歷清單。

L_1 = [11, 12, 13]
L_2 = [12, 13, 42]
L_3 = [3, 42, 5]

# converting lists to set
set_1 = set(L_1)
set_2 = set(L_2)

# now print the symmetric difference when

# when the converted set is passed as a parameter
print(set_1.symmetric_difference(set_2))

# now print the symmetric difference when list is

# passed as a parameter by converting it to a set
print(set_2.symmetric_difference(L_3))
登入後複製

輸出

{42, 11}
{13, 3, 12, 5}
登入後複製

範例

在這裡,我們建立了兩個列表,然後建立了一個空的臨時變數。然後我們使用 for 迴圈來迭代列表中的數字。 If 語句檢查數字是否常見,然後將元素附加到第一個建立的臨時變數。然後列印具有不同元素的清單。

list_1 = [1, 35, 20, 25, 70, 35, 80]
list_2 = [25, 80, 35]
temp_3 = []
for element in list_1:
   if element not in list_2:
      temp_3.append(element)
print(temp_3)
登入後複製

輸出

[1, 20, 70]
登入後複製

使用列表理解

在這種方法中,我們明確地將列表轉換為集合,然後使用減法運算子僅從另一個列表中刪除一個。前往 Python 中的集合以取得其他集合引用。這是與我們之前採用的策略類似的策略。唯一的區別是使用列表理解語法代替嵌套循環。

範例

以下程式正在比較兩個清單:list_1 和 list_2。它從第二個列表建立一個集合,然後使用它過濾掉兩個列表中出現的任何值。結果是新的過濾清單 (temp_3),其中僅包含 list_1 中未出現在 SET_1 (list_2) 中的元素。

list_1 = [13, 15, 22, 25, 30, 54, 40]
list_2 = [54, 45, 30, 13]
SET_1 = set(list_2)
temp_3 = [x for x in list_1 if x not in SET_1]
print(temp_3)
登入後複製

輸出

[15, 22, 25, 40]
登入後複製

不使用set()

在此方法中,使用基本組合技術從兩個清單中複製元素,同時定期檢查它們是否存在於另一個清單中。

範例

在下面的程式中 - 我們定義一個名為 Difference 的函數,它接受兩個列表作為參數。該函數會建立一個新列表 list_dif,其中包含兩個原始列表中都不存在的項目。然後它會列印出這個新列表以及兩個原始列表之間的差異。在此範例中,它印出 [1, 12, 25, 22, 30, 20]。

# this method helps to get difference of two lists

# by not using set()
def Difference(list1, list2):
   list_dif = [i for i in list_1 + list_2 if i not in list_1 or i not in list_2]
   return list_dif
list_1 = [1, 12, 25, 22, 30, 65, 70]
list_2 = [65, 20, 70]
list_3 = Difference(list_1, list_2)
print(list_3)
登入後複製

輸出

[1, 12, 25, 22, 30, 20]
登入後複製

使用對稱差

對稱difference ()方法傳回第一組或第二組中的元素。與兩個集合的共享元素不同,此方法不傳回交集。

範例

list_1 = [23, 18, 45, 25, 40, 23, 40]
list_2 = [23, 40, 35]
set_difference = set(list_1).symmetric_difference(set(list_2))
temp_3 = list(set_difference)
print(temp_3)
登入後複製

輸出

[35, 45, 18, 25]
登入後複製

結論

在本文中,我們使用了四種不同的方法透過 python 計算兩個列表之間的對稱差。每種方法都有一些獨特性和不同的處理任務的方式。

以上是Python程式計算兩個列表之間的對稱差集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

See all articles