2017-01-01 50 views
-2

我有3個表:如何檢查python中兩個列表的內容是否相同?

  1. list_1 = [1,2]
  2. list_2 = [2,1]
  3. list_3 = [1,2,3]

注:號碼[]內從Django的型號

我想要的ID測試磨損她的兩個列表的內容(但不一定是順序)完全相同。參照上面的3個例子:

比較LIST_1list_2
應該返回

,但如果我這樣做list_2list_3,之間或驗證list_1 and list_3
那麼結果應該是False

我該如何做到這一點?

感謝:d

+2

我不明白這個問題。如果你想測試'list_1'中的數字是否在'list_2'中,你爲什麼要在'list_2'和'list_3'之間進行驗證?爲什麼會導致它返回「False」? – Barmar

+0

將列表轉換爲'set',然後使用'set.issubset()'判斷一個列表是否包含另一個列表。 – Barmar

+0

使用集合較慢。請參閱底部的鏈接。另外,我認爲OP不希望比較平凡的子集,但是平等,你的回答可能不正確。哦,可能重複http://stackoverflow.com/q/7828867/5775722 –

回答

2

我解釋爲回報你的問題真,如果表中的內容(但不一定順序)是相同的,否則返回false。這可以通過對兩個列表進行排序來解決,然後使用==進行比較。 sorted()按升序返回整數列表。這意味着如果列表的內容相同,sorted()將返回相同的列表。

def validation(list_1,list_2): 
    return sorted(list_1) == sorted(list_2) 

這通過了所有的測試用例。我可能誤解了你的問題,請澄清,如果是這樣的話。

+0

感謝您的回覆,現在已經解決了:D – jennndol

+1

實際上,使用'Counter(list_1)== Counter(list_2)'在時間複雜度上會更好。 –

相關問題