Python 配列 に クラス が入っている場合の ソート | スクラムとは 仕事が進まなく技術力もないリーダーのごっこ遊び

Python 配列 クラス ソート

Python 配列に クラス インスタンスが入っていて そのままソートすると下記のエラーが出ます

Exception has occurred: TypeError
< not supported between instances of 型名 and 型名

クラス インスタンス 入っている 配列をソートする場合下記のように lambda 使って 記述できます。

class AVActress:
    name = ""
    kana = ""
    def __init__(self, n, k):
        self.name = n
        self.kana = k

array1 = [AVActress("清原みゆう","きよはらみゆう")]
array1.append(AVActress("三田真鈴","みたまりん"))
array1.append(AVActress("佐々木ひな","ささきひな"))
array1.append(AVActress("五日市芽依","いつかいちめい"))

array1.sort(key=lambda x: x.kana) #カナでソート
array1.sort(key=lambda x: x.kana,reverse=True) #カナで逆順ソート
array1.sort(key=lambda x: x.name) #名前でソート

for aVActress in array1:
    print(f"{aVActress.name}{aVActress.kana})")

 

AVActress という クラスを作り

array1 ( 配列 )に AVActressインスタンスを入れていく

その後 lambda を使って 配列ソートしています。