【发布时间】:2018-03-11 15:19:32
【问题描述】:
我正在学习 Python,我想了解更多关于如何对列表进行排序的信息。我知道在列表中排序字符串和列表中的列表以及列表中的整数等等有很多,但我想知道的是如何对列表中的 objects 进行排序(它可能有助于其他语言)。比如,假设我有这个:
import random
class Example()
def __init__(self):
self.choose_if_special = randint(0,10)
self.special = None
def see_if_special(self):
"""determines if it is special"""
if self.choose_if_special == 3:
self.special = True
else:
self.special = False
list = []
max_examples = 10
for i in range(0, max_examples):
#pushes max_examples Example(s) to list list
list.append(Example())
for j in list:
#prints not sorted list
print(j)
但是,如果我想先打印所有带有.special = True 的函数,还是最后打印呢?有没有特定的功能可以做到这一点?还是你必须做其他事情?我已经想到并查看了一些可能的解决方案,但为了确保我不会浪费我的时间,是否有一个函数可以在 Python 或它的一个库中执行此操作?如果不是,那么对列表进行排序的最快和最有效的方法是什么(所以它不会运行得更慢)?
【问题讨论】:
-
您实际上是在哪里尝试对列表进行排序?您是否尝试过将
sorted或sort与关键参数一起使用? -
Python 中的一切都是一个对象,因此当您进行常规整数排序 时,您实际上会像本例中那样对对象进行排序。您只需要了解两者是如何连接的。