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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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