Python - 列表列表中的不常見元素
在本文中,我們將學習各種方法,使用這些方法我們可以找到列表列表中的不常見元素,這意味著該元素不存在於其他列表中。在使用 Python 中的列表列表時,通常會遇到需要查詢這些巢狀結構中存在的不常見元素的情況。查詢列表列表中的不常見元素可以使用各種方法和技術來實現。在本文中,我們將探討 8 個示例和方法,以幫助您輕鬆識別列表列表中的不常見元素。
示例
讓我們透過一個例子來理解 -
list1 = [[1, 2], [3, 4], [5, 6]] list2 = [[3, 4], [5, 6], [7, 8]]
輸出
[1, 2, 7, 8]
因此,您可以觀察到我們給出了兩個列表列表,我們將比較這兩個列表並檢查哪個元素不存在於另一個列表中,因此 list1 中的元素 [1,2] 不存在於 list2 中,並且 list2 中的元素 [7,8] 不存在於 list1 中,因此輸出將為 [1,2,7,8]。
方法 1:使用巢狀迴圈
這是一種非常基本的方法,我們將在其中使用巢狀迴圈來查詢列表列表中的不常見元素。
示例
list1 = [[1, 2], [3, 4], [5, 6]]
list2 = [[3, 4], [5, 6], [7, 8]]
uncommon_elements = []
for subl1 in list1:
if subl1 not in list2:
uncommon_elements.append(subl1)
for subl2 in list2:
if subl2 not in list1:
uncommon_elements.append(subl2)
print("list1:", list1)
print("list2:", list2)
print("Uncommon elements from the lists of lists :",uncommon_elements)
輸出
list1: [[1, 2], [3, 4], [5, 6]] list2: [[3, 4], [5, 6], [7, 8]] Uncommon elements from the lists of lists : [[1, 2], [7, 8]]
解釋
在上述方法中,我們使用了兩個迴圈遍歷列表列表,對於每個子列表,我們檢查它是否存在於另一個列表中,如果不存在,則將其新增到 uncommon_elements 列表中。
方法 2:使用列表推導式
在這種方法中,我們將使用列表推導式技術,使用該技術我們可以過濾列表列表中的元素。我們將使用巢狀迴圈遍歷兩個列表的子列表,並將找到不常見的元素。
示例
list1 = [[1, 2], [3, 4], [5, 6]]
list2 = [[3, 4], [5, 6], [7, 8]]
uncommon_elements = [
element for sublist in list1 + list2
for element in sublist
if (sublist not in list1) or (sublist not in list2)
]
print("list1:", list1)
print("list2:", list2)
print("Uncommon elements from the lists of lists :",uncommon_elements)
輸出
list1: [[1, 2], [3, 4], [5, 6]] list2: [[3, 4], [5, 6], [7, 8]] Uncommon elements from the lists of lists : [1, 2, 7, 8]
解釋
在上面的示例中,我們將首先將兩個列表連線到一個列表中,然後我們使用列表推導式遍歷每個子列表,並檢查它是否存在於 list1 或 list2 中,但不在兩者中。然後我們從列表中收集不常見的元素。
方法 3:使用集合差
在這種方法中,我們將使用集合的概念,並將計算兩個集合之間的差來查詢不常見的列表元素。
示例
list1 = [[1, 2], [3, 4], [5, 6]]
list2 = [[3, 4], [5, 6], [7, 8]]
set1 = set(map(tuple, list1))
set2 = set(map(tuple, list2))
uncommon_elements = list(map(list, set1 - set2)) + list(map(list, set2 - set1))
print("list1:", list1)
print("list2:", list2)
print("Uncommon elements from the lists of lists :",uncommon_elements)
輸出
list1: [[1, 2], [3, 4], [5, 6]] list2: [[3, 4], [5, 6], [7, 8]] Uncommon elements from the lists of lists : [[1, 2], [7, 8]]
解釋
在上面的示例中,我們計算了 set1 和 set2 之間的差,反之亦然。然後我們收集存在於任何集合中但在另一個集合中是不常見元素的元素。
方法 4:使用 Pandas DataFrame
在這種方法中,我們將使用 Pandas DataFrame 庫的概念,該庫非常流行用於資料操作。我們將使用 Pandas DataFrame 提供的 DataFrame 物件來查詢來自兩個不同列表的列表列表中的不常見元素。
示例
import pandas as pd
list1 = [[1, 2], [3, 4], [5, 6]]
list2 = [[3, 4], [5, 6], [7, 8]]
list1 = [[1, 2], [3, 4], [5, 6]]
list2 = [[3, 4], [5, 6], [7, 8]]
df1 = pd.DataFrame(list1)
df2 = pd.DataFrame(list2)
uncommon_elements = pd.concat([df1, df2]).drop_duplicates(keep=False).values.tolist()
print("list1:", list1)
print("list2:", list2)
print("Uncommon elements from the lists of lists :",uncommon_elements)
輸出
list1: [[1, 2], [3, 4], [5, 6]] list2: [[3, 4], [5, 6], [7, 8]] Uncommon elements from the lists of lists : [[1, 2], [7, 8]]
解釋
在上面的示例中,我們從 list1 和 list2 建立了兩個 Pandas DataFrame。然後我們連線這兩個 DataFrame,並刪除 DataFrame 的重複行,這將給我們結果,即只有不常見的元素。
方法 5:使用集合交集和差集
在這種方法中,我們將使用集合交集和差集的概念來查詢列表列表中的不常見元素。
示例
list1 = [[1, 2], [3, 4], [5, 6]]
list2 = [[3, 4], [5, 6], [7, 8]]
set1 = set(map(tuple, list1))
set2 = set(map(tuple, list2))
uncommon_elements = list(map(list, (set1 - set2).union(set2 - set1)))
print("list1:", list1)
print("list2:", list2)
print("Uncommon elements from the lists of lists :", uncommon_elements)
輸出
list1: [[1, 2], [3, 4], [5, 6]] list2: [[3, 4], [5, 6], [7, 8]] Uncommon elements from the lists of lists : [[1, 2], [7, 8]]
解釋
在上面的示例中,我們將 list1 和 list2 轉換為元組集。然後我們計算了這些集合之間的差。並集操作組合了差異,為我們提供了元組形式的不常見元素,然後將其轉換回列表。
方法 6:使用集合和對稱差
在這種方法中,我們將使用集合和對稱差的概念來查詢列表列表中的不常見元素。
示例
list1 = [[1, 2], [3, 4], [5, 6]]
list2 = [[3, 4], [5, 6], [7, 8]]
set1 = set(map(tuple, list1))
set2 = set(map(tuple, list2))
uncommon_elements = list(map(list, set1.symmetric_difference(set2)))
print("list1:", list1)
print("list2:", list2)
print("Uncommon elements from the lists of lists :",uncommon_elements)
輸出
list1: [[1, 2], [3, 4], [5, 6]] list2: [[3, 4], [5, 6], [7, 8]] Uncommon elements from the lists of lists : [[1, 2], [7, 8]]
解釋
在上面的示例中,我們首先將 list1 和 list2 的子列表轉換為元組集。我們將使用這兩個集合之間的對稱差,這將為我們提供元組形式的不常見元素的結果。然後我們將這些元組轉換回列表以獲取最終的 uncommon_elements 列表。
結論
因此,我們瞭解到,從兩個不同列表中查詢列表列表中的不常見元素是資料分析和操作中非常關鍵的任務。我們看到了不同的方法,包括基本方法、Pandas、列表和對稱差,使用這些方法我們可以計算列表列表中的不常見元素。您可以使用最適合您需求的任何方法,但瞭解知識對於學習目的來說是好的。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP