2つのリストを比較したいと思います。たとえば、リスト比較はどのように機能しますか?
a = [8,9,9,11]
b = [8,7,20,10]
if a >= b :
print "true"
"true"
はなぜ印刷されますか?
8 >= 8 is true
9 >= 7 is true
9 >= 20 is false but the program return true
11 >= 10 is true
2つのリストを比較したいと思います。たとえば、リスト比較はどのように機能しますか?
a = [8,9,9,11]
b = [8,7,20,10]
if a >= b :
print "true"
"true"
はなぜ印刷されますか?
8 >= 8 is true
9 >= 7 is true
9 >= 20 is false but the program return true
11 >= 10 is true
あなたは比較のすべてをチェックするall
機能を使用して賢明な2つのリストの要素を比較するために、リストの内包表記を使用することができますTrue
です:あなたは大多数の結果が欲しいわけ
a = [8,9,9,11]
b = [8,7,20,10]
all(a[i]>=b[i] for i in range(len(a))) # False
[マイ・マリア・カリアへの私のコメント]を参照してください(https://stackoverflow.com/questions/47548113/how-to-compare-8-9-9-11-vs-8-7-20-10#comment82053005_47548232) –
また、OP(たぶん)は、すべての要素のペアを比較したくないので、double forループが間違っています。 –
@ PM2Ring、ええ、私はあなたのことを見ていますが、リスト内包に 'break 'を使うことはできないので、最初に' False'が起こったときにどうすれば止められますか? – Arman
次のように、リスト内包し、すべての機能を使用することができます:
コード:
a = 8,9,9,11
b = 8,7,20,10
print all([(a > b) for a, b in zip(a,b)])
出力:
私はこのような値 垂直を比較したいですFalse
ジェネリック式を 'list'ではなく' all'または 'any'に渡す必要があります。両方の機能が短絡しているので、結果が明確になるとすぐに処理が停止します。あなたがそれらをリストcompにフィードした場合、作業を開始する前にリスト全体を構築しなければなりませんが、結果を決定するのに必要な数だけ生成されます。 –
? –
探している出力を明確にすることはできますか? 'False'の結果だけが必要なのか、'(True、True、False、True) 'のようなシーケンスを探していますか? –
デフォルトでは、タプル(またはリスト)は文字列の比較方法と同様に比較されます。比較では、一致しないペアが見つかるまで(または1つのコレクションに項目がなくなるまで) –