我有3個表:如何檢查python中兩個列表的內容是否相同?
list_1 = [1,2]
list_2 = [2,1]
list_3 = [1,2,3]
注:號碼[]內從Django的型號
我想要的ID測試磨損她的兩個列表的內容(但不一定是順序)完全相同。參照上面的3個例子:
比較LIST_1和list_2
應該返回真,
,但如果我這樣做list_2和list_3,之間或驗證list_1 and list_3,
那麼結果應該是False。
我該如何做到這一點?
感謝:d
我有3個表:如何檢查python中兩個列表的內容是否相同?
list_1 = [1,2]
list_2 = [2,1]
list_3 = [1,2,3]
注:號碼[]內從Django的型號
我想要的ID測試磨損她的兩個列表的內容(但不一定是順序)完全相同。參照上面的3個例子:
比較LIST_1和list_2
應該返回真,
,但如果我這樣做list_2和list_3,之間或驗證list_1 and list_3,
那麼結果應該是False。
我該如何做到這一點?
感謝:d
我解釋爲回報你的問題真,如果表中的內容(但不一定順序)是相同的,否則返回false。這可以通過對兩個列表進行排序來解決,然後使用==進行比較。 sorted()按升序返回整數列表。這意味着如果列表的內容相同,sorted()將返回相同的列表。
def validation(list_1,list_2):
return sorted(list_1) == sorted(list_2)
這通過了所有的測試用例。我可能誤解了你的問題,請澄清,如果是這樣的話。
感謝您的回覆,現在已經解決了:D – jennndol
實際上,使用'Counter(list_1)== Counter(list_2)'在時間複雜度上會更好。 –
我不明白這個問題。如果你想測試'list_1'中的數字是否在'list_2'中,你爲什麼要在'list_2'和'list_3'之間進行驗證?爲什麼會導致它返回「False」? – Barmar
將列表轉換爲'set',然後使用'set.issubset()'判斷一個列表是否包含另一個列表。 – Barmar
使用集合較慢。請參閱底部的鏈接。另外,我認爲OP不希望比較平凡的子集,但是平等,你的回答可能不正確。哦,可能重複http://stackoverflow.com/q/7828867/5775722 –