属性nameと姓のStudent()という名前のクラスを作成しました。そのクラスでは、クラス変数 - > all_students = []を作成しました。これらのオブジェクトの属性のlenによってオブジェクトのリストをソートする方法はありますか? - Python
オブジェクトを作成するときに、クラス変数= all_studentsに追加されています。
オブジェクトのリストを属性名の長さで最長から最短までどのように並べ替えるのですか?
import operator
class Student:
all_students = []
def __init__(self, name, surname):
self.name = name
self.surname = surname
Student.all_students.append(self)
s_1 = Student("Jacobbbb", "anything")
s_2 = Student("Mat", "anything1")
s_3 = Student("Marcooooooo", "sss")
new_list = sorted(Student.all_students, key=operator.attrgetter(len('name')))
for student in new_list:
print(student.name)
私はオペレータで試しましたが、このようにはできません。助けに感謝します。
OPはそれを逆順にソートしたいので、 '-len(s.name)'が必要です。 –
...または 'reverse = True'です。 – SethMMorton