私は以下のようにリストを定義している:Pythonで比較できないオブジェクトのコンパレータの仕組みは?
list = [1,3,2,[4,5,6]]
その後、以下のようにコンパレータ方式を定義した:
list.sort(reverseCom)
print list
:今、私はreverseComを使用してリストを並べ替えているResult : [[4, 5, 6], 3, 2, 1]
def reverseCom(x,y):
if(x>y):
return -1
elif(x<y):
return 1
else:
return 0
要素[4,5,6]はリストの他の要素と比較できませんが。どのようにエラーを投げていないのですか?
私は、ソートがPythonでユーザー定義コンパレータとどのように動作するのか理解できますか?
オブジェクトが匹敵するので、エラーは発生しません。つまり、 'list'インスタンスは' int'インスタンスと比較できます。 '[4,5,6]> 3 'を試してください。 'list'は、私が覚えている限り、常に' int'よりも大きくなります。これは比較メソッドが 'list'でどのように定義されるかです。 –