我有以下代码库:
from datetime import datetime
from operator import attrgetter
class Person:
def __init__(self,name,day,month,year):
self.name = name
self.day = day
self.mon = month
self.year = year
def __str__(self):
if self.day < 10:
day = "0" + str(self.day)
else:
day = str(self.day)
if self.mon < 10:
mon = "0" + str(self.mon)
else:
mon = str(self.mon)
display = day + "-" + mon + "-" + str(self.year)
return display
def __repr__(self):
if self.day < 10:
day = "0" + str(self.day)
else:
day = str(self.day)
if self.mon < 10:
mon = "0" + str(self.mon)
else:
mon = str(self.mon)
display = day + "-" + mon + "-" + str(self.year)
return display
def sortdates(l1):
for dates in l1:
dates.finalbirthdate = datetime.strptime(repr(dates),"%d-%m-%Y")
return sorted (l1,key=attrgetter('finalbirthdate'),reverse=True)
if __name__ == '__main__':
p1 = Person("Subhayan",18,9,1984)
p2 = Person("Poulomi",13,1,1988)
p3 = Person("Dummy",13,1,1988)
p4 = Person("Shaayan",25,11,1988)
p5 = Person("Father",1,1,1954)
check = sortdates([p1,p2,p3,p4,p5])
for persons in check:
print (persons)
现在,sortdates函数的主要目的是根据finalbirthdate属性对对象进行排序。
但是,如果我想根据finalbirthdate属性的值在该列表中找到唯一的内容。
因此,例如“Poulomi”和“dummy”对象都具有相同的finalbirthdate属性,因此我只想要其中一个而不是两个。
有办法做到这一点吗?
提前致谢。
答案 0 :(得分:0)
将这些方法添加到班级
check = sortdates([p1,p2,p3,p4,p5])
并将check = sortdates(set([p1,p2,p3,p4,p5]))
更改为
int[] arr = new int[]{54,234,1,45,14,54};
int small = Arrays.stream(arr).reduce((x, y) -> x < y ? x : y).getAsInt();