Sort by

recency

|

235 Discussions

|

  • + 0 comments
    import operator
    
    def person_lister(f):
        def inner(people):
            # complete the function
            ret = []
            #print(people)
            people = sorted(people, key = lambda x : int(x[2]))
            #print(people)
            for person in people:
                #print(person)
               ret.append(f(person))
          
            return ret
        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):
            people.sort(key = lambda data : int(data[2]))
            return [f(person) for person in people]
        return inner
    
  • + 0 comments

    Here is HackerRank Decorators 2 - Name Directory in Python solution - https://programmingoneonone.com/hackerrank-decorators-2-name-directory-solution-in-python.html

  • + 0 comments
    def person_lister(f):
        def inner(people):
            # complete the function
            sorted_list = sorted(people, key= lambda x: int(x[2]))
            return [f(person) for person in sorted_list]
            
        return inner
    
  • + 1 comment

    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...