Python刻意练习

Python刻意练习 2019-05-23

2019-05-24  本文已影响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']

代码实现

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]
上一篇 下一篇

猜你喜欢

热点阅读