首頁 >後端開發 >Python教學 >如何在保留元素原始順序的同時執行集合運算?

如何在保留元素原始順序的同時執行集合運算?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-16 16:41:10249瀏覽

How Can I Perform Set Operations While Preserving the Original Order of Elements?

集合運算和順序保留

將清單轉換為集合時,元素順序會發生變化,因為集合是無序資料結構,優先級快會員資格測驗。它們不保留原始插入順序。

在集合運算中保留順序

要在不遺失初始順序的情況下執行集合操作,請考慮以下選項:

1。集合差異的列表推導式

如果您有一個常規列表並且需要在保留順序的同時刪除一組元素,請使用列表推導式:

a = [1, 2, 20, 6, 210]
b = set([6, 20, 1])
[x for x in a if x not in b]  # [2, 210]

2 。有序集的字典鍵

對於具有快速成員資格測試和插入順序保留的資料結構,請使用Python字典的鍵(從Python 3.7開始):

a = dict.fromkeys([1, 2, 20, 6, 210])
b = dict.fromkeys([6, 20, 1])
dict.fromkeys(x for x in a if x not in b)  # {2: None, 210: None}

3. Collections.OrderedDict(舊版支援)

對於較舊的 Python 版本,依賴 collections.OrderedDict:

a = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210])
b = collections.OrderedDict.fromkeys([6, 20, 1])
collections.OrderedDict.fromkeys(x for x in a if x not in b)  # OrderedDict([(2, None), (210, None)])

以上是如何在保留元素原始順序的同時執行集合運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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