首页 > 解决方案 > 了解python程序

问题描述

我遇到了一个python程序问题。以下是问题及其相应的解决方案。我只是无法理解程序的流程。尤其是@person_lister, 及其意义。

此外,print(*name_format(people), sep='\n')这里的 name_format 采用 2D 数组而不是 1D。根据 name_format 的定义,它可能需要一个一维数组。

有人可以解释一下这个程序的流程,我就是无法理解。

感谢你的帮助。谢谢。

问题 https://www.hackerrank.com/challenges/decorators-2-name-directory/problem

解决方案:

import operator

people = [input().split() for i in range(int(input()))]

def person_lister(f):
    def inner(people):
        return [f(person) for person in sorted(people, key=operator.itemgetter(2))]
    return inner

@person_lister
def name_format(person):
    return ("Mr. " if person[3] == "M" else "Ms. ") + person[0] + " " + person[1]

print(*name_format(people), sep='\n')

标签: python

解决方案


推荐阅读