美文网首页Python刻意练习
Python刻意练习 2019-05-23

Python刻意练习 2019-05-23

作者: 黄凯 | 来源:发表于2019-05-24 17:50 被阅读0次

Python刻意练习

题目翻译

  • 有以下的一组数据
NAMES = ['arnold schwarzenegger', 'alec baldwin', 'bob belderbos',
         'julian sequeira', 'sandra bullock', 'keanu reeves',
         'julbob pybites', 'bob belderbos', 'julian sequeira',
         'al pacino', 'brad pitt', 'matt damon', 'brad pitt']
  • 编写一个函数,将数据去重并改为首字母大写
  • 编写一个函数,将数据按surname排序
  • 编写一个函数,返回最短的firstname,架设只有一个
  • 越简洁越好

代码实现

def dedup_and_title_case_names(names):
    """Should return a list of names, each name appears only once"""

    return list(map(lambda x: x.title(), set(names)))

def sort_by_surname_desc(names):
    """Returns names list sorted desc by surname"""
    names = dedup_and_title_case_names(names)
    return sorted(names, key=lambda n: n.split(' ')[1],  reverse = True)


def shortest_first_name(names):
    """Returns the shortest first name (str).
       You can assume there is only one shortest name.
    """
    names = dedup_and_title_case_names(names)
    return sorted(names, key = lambda n: len(n.split(' ')[0]) )[0].split(' ')[0]

思考

# 最后一个函数也可以用 for循环实现
    names = [name.split()[0] for name in names]

相关文章

网友评论

    本文标题:Python刻意练习 2019-05-23

    本文链接:https://www.haomeiwen.com/subject/dnjvzqtx.html