python - 了解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')
解决方案
推荐阅读
- javascript - CSS 动画不适用于所有 React 组件
- android - 将日期转换为时间戳并将其存储在 SQLite 中后如何搜索特定日期
- spring-boot - 为什么@DateTimeFormat 在 th:text 中无效
- python - 测试集精度 1.如何调试
- javascript - 如何在模式中添加对象列表(子)可选Javascript(React-Native)
- python - Groupby 并应用定义的函数 - Pandas
- mongodb - 如何在有条件的 mongoDB 上插入数据
- junit - junit @SpringBootTest 用于 org.springframework.cache.Cache
- jcr - 将强制属性添加到现有 nodeType
- hadoop - 如何为 HBASE 主服务器和区域服务器启用 JMX