首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

hand first python 选读(3)

数据处理

掌握了前面4章,这就是比较简单的一章。

先看一个需求:

有一个跑步教练kelly,他最好的选手一直在刻苦训练,每次跑步成绩,kelly都会及时的把事件记录在计算机的一个文本文件中。总共有四个文件,分别记录james,sarah,julie和mikey的时间数据。

james:2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22

julie:2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21

sarah:2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55

mikey:2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38

首先,这个教练需要一种快捷的方法能够很快了解每个选手跑得最快的3个时间

分析数据,有的是以 连接,有些以 连接,还有的是 。需作分类讨论转化为小数。

排序

接下来介绍列表排序方法。

sort:用法如arr.sort(),不会返回新的列表,且修改原有列表

sorted:用法如sorted(arr);返回一个新数组,不修改旧列表

都是升序排列。如需要降序,需要加入参数

显然是后者最优。

列表迭代

列表推导

这里使用原来所学得到的方案。在getFast中,会然后追加一个新的列表。这种语法比较low。

是谓之一行搞定,得之简洁,失之灵活

回到需求:列表去重和截取

需求是:获取每个选手的快的数据

首先要明确去重的判断是

其次,列表截取前三个的方法是

计划通。

改进:集合(set)

列表去重的问题引发另一个思考:有没有另外一个BIF方法去重呢?

是时候介绍另外一个数据结构了——集合。

集合与数学上的集合差不多,啥数据都能放,除了重复

如:

最后再优化下代码:

搞定。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181219G1KBMS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券