Я делаю задание для начинающих в Python и спрашиваю себя, есть ли способ краткого описания этого кода, который не создает список в классе . Нужно отсортировать список по всем параметрам по названию, возрасту, виду и наоборот.
Так что это работает, но безобразно:
def sortAnimal(llist):
while True:
print("\nChoose which parameter to sort: \n")
print("1. Name\n2. Age\n3. Species\n")
choice = int(input("Choice:"))
print("\n")
if choice == 1:
print("{:7s} {:7s} {:7s} {:7s}".format("Name:", "Age:", "Species:", "Gender:"))
sortedList = sorted(llist, key=lambda animal: animal.name)
for obj in sortedList:
print(obj)
if input("\To reverse the list press enter. Otherwise press m + enter") == "":
print("\n")
print("{:7s} {:7s} {:7s} {:7s}".format("Name:", "Age:", "Species:", "Gender:"))
sortedList = sorted(llist, key=lambda animal: animal.name, reverse= True)
for obj in sortedList:
print(obj)
else:
pass
elif choice == 2:
# same code as option 1 but with animal.age
pass
elif choice == 3:
#same code as option 1 but with animal.species
pass
if input("\To sort again press enter, back to menu press m + enter") == "":
continue
else:
break
Я думал, что какая-то функция вроде этой, но она тоже не работает:
def sortPrintAnimal(parameter, llist):
while True:
sortedList = sorted(llist, key=lambda animal: animal.parameter)
print("{:7s} {:7s} {:7s} {:7s}".format("Name:", "Age:", "Species:", "Gender:"))
for obj in sortedList:
print(obj)
if input("If you want to reverse the list press enter. Back to menu press m + enter: ") == "":
# reversing the list
pass
else:
break