クラスの__str__
メソッドを使用してリストを印刷しようとしましたが、リストを印刷できるようになるには、そのクラスの__str__
メソッドの前にある別のメソッドでアルファベット順に並べる必要があります。このために提供される方法は、次のとおり名前が必要クラスメソッドを使用したリストのアルファベット順
def returnName(self):
'''return the name of the player first last'''
return(self.first + self.last)
def returnReverseName(self):
'''return the name of the player as last, first'''
reverseName = (str(self.last), str(self.first))
return(reverseName)
def __eq__ (self, other):
'''determine if this persons name is the same as the other personsname'''
if self.returnReverseName == other.returnReverseName:
return True
else:
return False
def __lt__(self,other):
'''determine if this persons name is less than the other persons name alphabetically'''
if str(self.returnReverseName) < str(other.returnReverseName):
return True
else:
return False
def __gt__ (self, other):
'''determine if this persons name is greater than the other persons name alphabetically'''
if self.returnReverseName > other.returnReverseName:
return True
else:
return False
def __str__(self):
'''return a string of the persons name and their rating in a nice format'''
Name1 = str(self.first) + ' ' + str(self.last)
return ('%-20s %10.2f' % (Name1, self.rating))
はラストネーム、ファーストネームでソートしかし名姓の順に印刷します。方法__lt__
と__gt__
は、印刷時に注文するべきものです。
basicList.sort()
for line in playerDict:
print(playerDict[line])
が、これはリストを利用していない、とだけ順不同的にラインで辞書の行を印刷している:私はこれまでのリストをコンパイルする必要があるコードがあります。メソッドを参照していますが、名前をアルファベット順に並べることはできません。適切な順序で辞書を印刷する方法を適切に使用するにはどうすればよいですか?プレイヤーオブジェクトのリストを使用する必要がある場合は、アルファベット順の後に印刷される__str__
メソッドを使用して印刷するにはどうすればよいですか?
を残念ながら、私は辞書のソートのための方法を利用する必要があるので、私はそのはるかに簡単にルートを行っていない理由です。私が受け取った別のアドバイスでは、リストを作成し、そのリストをソートし、__str__メソッドを使ってリストの情報を出力するよう指示されました。私はリストの正しい順序を認識するためにltとgtメソッドを取得する方法はあまりよく分かりません。 – huskies1313
これらのメソッドを実装したい場合は、示されているようにして、単純に 'key = ... '引数を' sorted() '呼び出しから削除します。 – TigerhawkT3
それは働いて、ありがとう! – huskies1313