Sort by

recency

|

231 Discussions

|

  • + 0 comments

    Isn't it terrible design to have a decorator change what parameters the decorated function expects? The only hint here is the name of the parameters in the provided code. I got it, but it is confusing...

  • + 0 comments
    def person_lister(f):
        def inner(people):
            people = sorted(people, key= lambda x: int(x[2]))
            for person in people:
                yield f(person)
        return inner
    
  • + 0 comments
    def person_lister(f):
        def inner(people):
            people.sort(key=lambda x: int(x[2]))
            # complete the function
            return [f(person) for person in people]
        return inner
    
  • + 0 comments
    import operator
    def person_lister(f):
        def inner(people):
            for x in people:
                x[2] = int(x[2])
            people.sort(key=operator.itemgetter(2))
            return [f(x) for x in people]
        return inner
    @person_lister
    def name_format(person):
        return ("Mr. " if person[3] == "M" else "Ms. ") + person[0] + " " + person[1]
    if __name__ == '__main__':
        people = [input().split() for i in range(int(input()))]
        print(*name_format(people), sep='\n')
    
  • + 0 comments
    def person_lister(f):
        def inner(people):
            return [f(p) for p in sorted(people,key = lambda x: int(x[-2]))] 
        return inner