资讯专栏INFORMATION COLUMN

每天学点Python Cookbook(五)

ybak / 1458人阅读

摘要:三行代码的快速排序任务你想证明,对函数式编程范式的支持比第一眼看上去的印象强多了。解决方案测试用例测试结果

1. 三行代码的快速排序

任务:
你想证明,Python对函数式编程范式的支持比第一眼看上去的印象强多了。

解决方案:

def quick_sort(l):
    if len(l) <= 1: return l
    return quick_sort([lt for lt in l[1:] if lt < l[0]]) + l[0:1] + 
            quick_sort([ge for ge in l[1:] if ge >= l[0]])

测试用例:

if __name__ == "__main__":
    l = [9,8,7,6,5,4,3,2,1]
    print(quick_sort(l))

测试结果:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41734.html

相关文章

  • 每天学点Python Cookbook(四)

    摘要:解决方案通过标准库的模块,可以快速完成此任务。测试结果计算日期之间的时段任务给定两个日期,计算这两个日期之间隔了几天。此方法也有诸多限制,时间格式是固定的,计算量大时效率很低。 1.寻找上一个星期五 任务:寻找上一个星期五的日期。 解决方案:通过python标准库的datetime模块,可以快速完成此任务。 import datetime, calendar def find_la...

    xiaoxiaozi 评论0 收藏0
  • 每天学点Python Cookbook(三)

    摘要:计算文件的行数任务需要计算一个文件中有多少行。解决方案用方法再加循环计数进行统计,具体代码如下测试用例定义一个函数,向文件中写入数字,每十个换一次行。 1.计算文件的行数 任务:需要计算一个文件中有多少行。 解决方案:用enumerate()方法再加循环计数进行统计,具体代码如下: def get_filelines(file_name): count = 0 f = ...

    TANKING 评论0 收藏0
  • 每天学点Python Cookbook(一)

    摘要:对字典排序任务对字典进行排序,这意味着需要根据字典的键排序,然后再让对应的值也处于同样的顺序。测试用例下雨天晴天阴天测试结果讨论在最后的语句中,将列表推导式换成对的调用可以获得一些速度上的提升大约。 1.对字典排序 任务:对字典进行排序,这意味着需要根据字典的键排序,然后再让对应的值也处于同样的顺序。 解决方案:最简单的方法是,先将键排序,然后选出对应值。 def sort_dict(...

    wslongchen 评论0 收藏0
  • 每天学点Python Cookbook(二)

    摘要:过滤字符串中不属于指定集合的字符任务给定一个需要保留的字符的集合,构建一个过滤函数,并可将其应用于任何字符串,函数返回一个的拷贝,该拷贝只包含指定字符集合中的元素。用方法用于创建字符映射的转换表,具体代码如下测试用例测试结果 1.过滤字符串中不属于指定集合的字符 任务:给定一个需要保留的字符的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字...

    GitChat 评论0 收藏0
  • 趁着课余时间学点Python(十四)文件操作

    摘要:我是布小禅,一枚自学萌新,跟着我每天进步一点点吧说了这么多暂时也就够了,那么就告辞吧 文章目录 ☀️ 前言 ☀️? 作者简介 ??文件操作?1️⃣、open函数...

    abson 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<