2016-11-18 6 views
0

私は、文字列の一致と、Python 3の2つの文字列の正確な比較を行う関数を作成しようとしていますが、基本的に2番目のリストは検証です。リスト1の項目がlist2私はエラーを投げたい。違いがあれば、リスト1はCSVファイルからのものですが、iveは適切な場所に行を取得することができました。リストを別のvalリストと比較するPython 3

私はかなり新しくて少し失われています。 EG:

list1 = ["a", "B", "AB"] 
list2 = ["a","B","abc"] 

誰かがCSVファイルを修正するまで、だから、リスト1から「AB」はプログラムをシャットダウンしなければならない「AB」ありえないので、リスト2で

list1 = ["a", "b"] 
list2 = ["b", "a"] 

彼らの両方があるので、これに合格しなければなりませんどちらのリストでも

list1は同じ文字列を複数回持つことがありますが、私は考えてみることができます。 すべてのヘルプは感謝:)などとは異なり

+0

同じサイズである必要がありますか、または1つのサイズが他のサイズよりも大きくなる必要がありますか? –

+0

elethans答えは、私のCSVファイルのようにエラーが拡大するようにしたいと思っていましたが、奇妙なことがあれば、エラーが出るでしょう。 –

答えて

1

、JavaScriptは、あなたはPythonで==とのリストを比較することができ、潜在的に、彼らは同じオブジェクトでない場合でも、バックTrueを取得:リストは、潜在的可能性がある場合

In [1]: list1 = ["a", "B", "AB"] 

In [2]: list2 = ["a","B","abc"] 

In [3]: list1 == list2 
Out[3]: False 

In [4]: list3 = ["a", "B", "AB"] 

In [5]: list1 == list3 
Out[5]: True 

同じですが、同じ順序ではないかもしれません、ソートされたリストを比較することができます。あなたは文字通りのリストが等しくない場合にエラーが発生する場合は、same_list()関数の内部でraise MyErrorを使用することができ、

def same_list(l1, l2): 
    return sorted(l1) == sorted(l2) 

、またはそれを使用する:

In [6]: list4 == list1 
Out[6]: False 

In [7]: sorted(list4) == sorted(list1) 
Out[7]: True 

だからあなたのような何かを行うことができますその関数がFalseを返した場合。エラーは発生しませ

list1 = ["a", "b", "a", "b", "b"] 
list2 = ["b", "a"] 

に、あなたはset()を使用することができます:あなたのような状況が必要な場合

リスト1は、複数回

同じ文字列を有することができる

set(list1) == set(list2) # This will evaluate to True for the lists above 

これは、重複を無視して、両方のリストの固有の要素を比較します(ソートはセットには必要ないことにも注意してください)。

+0

ねえ、私は実際に別の方法で解決しました私自身の問題です(少なくとも私の使用のために) 私はキーリストを作ったので、情報がCSVファイルからフィードされると、プログラムはforループを使ってリスト内にあるかどうかを調べ、それがisntならばエラーを投げますキーリストに...しかし、あなたの助けの男に感謝 –

関連する問題