集合運算和順序保留
將清單轉換為集合時,元素順序會發生變化,因為集合是無序資料結構,優先級快會員資格測驗。它們不保留原始插入順序。
在集合運算中保留順序
要在不遺失初始順序的情況下執行集合操作,請考慮以下選項:
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中文網其他相關文章!