当前位置: 首页 > news >正文

制作简单公司网站流程做网站的公司 北京

制作简单公司网站流程,做网站的公司 北京,专业的网站公司到哪里找,wordpress如何改界面前言 本文主要给大家了关于利用Python按学生年龄排序的相关内容#xff0c;分享出来供大家参考学习#xff0c;下面话不多说了#xff0c;来一起看看详细的介绍#xff1a; 问题#xff1a;定义一个Class#xff1a;包含姓名name、性别gender、年龄age#xff0c;需要按… 前言 本文主要给大家了关于利用Python按学生年龄排序的相关内容分享出来供大家参考学习下面话不多说了来一起看看详细的介绍 问题定义一个Class包含姓名name、性别gender、年龄age需要按年龄给学生排序。 输入包含学生对象的List。 输出按照年龄age进行排序好的List。 思路1使用冒泡排序比较相邻的学生如果第一个学生的age值比第二个学生的age值大那么就整体交换这两个元素。持续每次对越来越少的元素重复上面的步骤。一直到没有任何一对学生需要比较。 思路2使用Python內建方法sorted()。 (这个问题其实是笔者面试时候手写的一个实际问题比较面向小白我们可以通过这样一个简单的问题复习Python的一些基础知识点) 1. 前期准备 1.1 定义Class class Student(object): def __init__(self, name, gender, age): self.__name name self.__gender gender self.__age age # 取得age属性 def getAge(self): return self.__age # 打印 def printStudent(self): return self.__name, self.__gender, self.__age 1.2 生成包含随机学生对象的List # 生成包含随机学生对象的list def generateStudent(num): # num为需要生成的测试对象数 list [] for i in range(num): randName .join(random.sample(string.ascii_letters, 4)) randGender random.choice([Male, FeMale]) randAge random.randint(10,30) s Student(randName, randGender, randAge) list.append(s) return list 2. 开始排序 2.1 使用冒泡排序 思路已在开头介绍我们直接来看代码 def sortStudent(list): for i in range(len(list)): for j in range(1, len(list)-i): if list[j-1].getAge() list[j].getAge(): list[j-1], list[j] list[j], list[j-1] return list 2.2 使用Python內建方法sorted 配合lambda表达式使用非常简洁代码如下 sorted(list, keylambda student: student.getAge()) # 将对象的age属性作为排序的Key 我们在这里补充一下 sorted() 和 lambda表达式 的相关知识点: 2.2.1 sorted(iterable, *, keyNone, reverseFalse) 官方文档 关于参数的说明 key specifies a function of one argument that is used to extract a comparison key from each list element: keystr.lower. The default value is None (compare the elements directly). reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed. key里接收的可以是某一个指定的函数如lambda函数返回的一个值作为指定的比较依据。 reverse默认是False从小到大排序设置为True后可以从大到小。 关于稳定性的说明 The built-in sorted() function is guaranteed to be stable. 看到官方文档的说明中写道这个方法是保证稳定的哟 关于原理Python内置的sorted()方法背后使用的是Timsort算法当数据越接近Ordered Data的时候时间复杂度越接近O(N)。在我们的这个问题中年龄属性是比较符合Ordered Data的。感兴趣的可以点击Timsort查看更多哈 2.2.2 lambda表达式 直接看一个简单的例子就能明白了~pairs [(one,1),(two,2),(three,3),(five,5),(zero,0),(four,4)]sorted(pairs, keylambda pair: pair[1]) # List中每个tuple对的排序依据是tuple中的第2个值 [(zero, 0), (one, 1), (two, 2), (three, 3), (four, 4), (five, 5)] 3. 执行测试 构建测试用的随机数据计算两种方法的执行时间进行比较~ if __name__ __main__: # list 形式是[(hZDw, FeMale, 17)...] list generateStudent(10000) # 方法1使用冒泡排序 start_Time1 time.time() sortStudent(list) end_Time1 time.time() # 方法1中使用10000个测试数据的排序时间是22.243秒以上非精确 print(%s cost time %s % (sortStudent , end_Time1 - start_Time1)) # 方法2使用Python内建的sorted方法lambda表达式 # 由于sorted方法背后使用的timsort方法当数据越接近Ordered data的时候时间复杂度越接近O(N)。 # 在这个例子里面年龄属性是比较接近Ordered data的。 start_Time2 time.time() sorted(list, keylambda student: student.getAge()) # 将对象的属性作为排序的Key end_Time2 time.time() print(%s cost time %s % (sorted , end_Time2 - start_Time2)) 测试结果 使用方法1冒泡排序当测试数据量是10000个的时候排序时间是22.243秒左右。 使用方法2內建方法当测试数据量是1000000个的时候排序时间的0.575秒左右。 虽然不是很精确但差别显然可见啦 以上。 如有错误还望指正~ 完整实现及测试可在Github找到ActualProblem-Solution 总结 以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作能带来一定的帮助如果有疑问大家可以留言交流谢谢大家对的支持。
http://www.pierceye.com/news/859265/

相关文章:

  • 网站建设硬件方案精准客源app
  • 网站视觉优化怎么做电子商务网站建设参考文献2018
  • 服务器可以吧网站做跳转吗wordpress 远程图片本地化
  • 网站在线访谈栏目建设个人网站可以备案了吗
  • 汉口北做网站搜索广告是什么
  • 电商网站可以用dw做嘉兴网站建设平台
  • 做网站是数据库应该放在哪里建筑工程水平防护网
  • vps网站无法通过ip访问网站怎么做的支付宝接口
  • 怎么创建一个博客网站网站的c4d动画是怎么做的
  • 西安做企业网站科技论文发表网
  • html 手机网站开发企业做网站的合同
  • 建立wordpress网站吗全州建设完小网站
  • 网站域名注册证书是什么制作WordPress友情链接
  • 如何在解决方案中新建网站html网页制作的软件下载
  • 企业网站怎么做优化开小加工厂去哪接单子
  • 网站建设推广费怎么做账域名和网站绑定
  • 商丘网站建设想象力网络中国流量最大的网站排行
  • 网站是否有备案网站集约化建设建议
  • 浏览器收录网站网上做图赚钱的网站
  • 网站建设优化过程中的优化策略相关文章 wordpress
  • 泉州网站深圳航空公司官网首页
  • 百度推广整体优化网站整体软装设计公司
  • 太原搜索引擎优化招聘信息服务好的镇江网站优化
  • 自己做网站下载怎么网站基础知识域名5个点
  • 网站搭建合作协议wordpress注册页面插件
  • 网络公司最好的是哪个兰州网络推广优化怎样
  • 网站文章采集工具新网站怎么做流畅
  • discuz 手机网站模板山东省住房建设厅网站首页
  • 网站建设违约责任条款枣庄专业做网站
  • python做爬虫和做网站做两个一摸一样的网站