最近、次のように 2 つの整数リストを直接比較しているコードに気付きました。
a = [10,3,5, ...]
b = [5,4,3, ...,]
if a > b:
...
これは少し奇妙に思えましたがTrue
、すべてのlist_a
の要素が の要素よりも大きい場合は返されlist_b
、各要素が等しい場合、またはlist_b
の要素が の要素よりも大きい場合は False が返されると想像しましたlist_a
。だから私はそれをテストしました:
>>> a=[3,3,3,3]
>>> b=[4,4,4,4]
>>> a>b
False
>>> b>a
True
わかりました。同様に:
>>> b = [1,1,1,1]
>>> a = [1,1,1,1]
>>> a>b
False
>>> b>a
False
しかし、それがより曖昧になると:
>>> a=[1,1,3,1]
>>> b=[1,3,1,1]
>>> a>b
False
>>> b>a
True
また:
>>> a=[1,3,1,1]
>>> b=[1,1,3,3]
>>> a>b
True
>>> b>a
False
結果は少し奇妙です。Pythonは実際に何をしていますか?左端の要素が対応する要素よりも大きい最初のリストを優先して結果を返しているようです。