首頁 >後端開發 >Python教學 >如何有效率比較不同元素的無序列表?

如何有效率比較不同元素的無序列表?

DDD
DDD原創
2024-11-28 02:47:10346瀏覽

How to Efficiently Compare Unordered Lists with Different Elements?

比較具有不同元素的無序列表

比較兩個具有不同元素的無序列表可能具有挑戰性,特別是當元素是複雜對象時。這個問題解決了這個問題。

高效比較技術

提供的解決方案概述了比較具有不同時間複雜度的無序列表的三種方法:

  1. O( n):如果物件是可散列的,則適合使用Counter() 方法。它計算每個元素的出現次數並比較結果計數器。
def compare(s, t):
    return Counter(s) == Counter(t)
  1. O(n log n):如果滿足以下條件,可以使用sorted()方法這些物件是可訂購的。它對兩個清單進行排序並比較結果排序序列。
def compare(s, t):
    return sorted(s) == sorted(t)
  1. O(n * n):如果物件既不可散列也不可散列,則此方法適用。可訂購。它迭代一個列表並檢查是否可以從另一個列表中刪除每個元素。
def compare(s, t):
    t = list(t)  # make a mutable copy
    try:
        for elem in s:
            t.remove(elem)
    except ValueError:
        return False
    return not t

選擇適當的比較技術取決於清單中物件的性質和所需的時間複雜度。

以上是如何有效率比較不同元素的無序列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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