我想知道是否有一种方法可以使python 2.7对由类内的字符串按字母顺序排列的类列表进行排序。

class person: #set up for patient
def __init__(self, FName, LName):
    self.FName = FName  # the first name of patient
    self.LName = LName  # last name of patient

patients=person(raw_input('first name'),raw_input('second name'))
i=1
all=[patients]
orderAlphabet=[patients]
orderInjury=[patients]
print a[0]
while i<3:
   patients=person(raw_input('first name'),raw_input('second name'))
   a.append(patients)
   i = i+1


我试图在此示例中按姓氏排序。

最佳答案

operator.attrgetter对此非常有用。

from operator import attrgetter
a.sort(key=attrgetter('LName'))   #sorts in-place
print(a) #list should be sorted here.


attrgetter也可以采用多个参数。因此,如果您想按姓氏然后按名字排序,请执行a.sort(key=attrgetter('LName', 'Fname'))

关于python - 根据类python 2.7中的变量按字母顺序对类列表进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31553507/

10-12 21:48