码迷,mamicode.com
首页 > 其他好文 > 详细

五、推导数据 ----- 处理数据

时间:2015-10-27 17:07:13      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

  • 推导列表

将一个列表转换为另一个列表时怎么做?

普通方法:

clean_mikey = []     #创建新列表
for each_t in mikey:    #迭代
    clean_mikey.append(sanitize(each_t))  #追加转换列表 函数sanitize()是接收字符串并处理成统一格式然后再输出

新方法:

clean_mikey = [sanitize(each_t) for each_t in mikey]

举例:

#将一个分钟列表转换为一个秒列表
>>>mins = [1,2,3]
>>>secs = [m*60 for m in mins]
>>>secs
[60,120,180]

#给定一个包含混合大小和小写字符串的列表,把它们转换成全大写的字符串
>>>lower = ["I","don‘t","like","spam"]
>>>feet = [s.upper() for s in lower]
>>>upper
[I,"DON‘T",LIKE,SPAM]
  • 两种排序方式

sort() 原地排序,用排序后的数据替换原数据

sorted() 复制排序,排序后保留原数据

另外:向sort()或sorted()传入reverse=True可以按降序排列数据

  • 使用分片来访问一个列表中的多个数据项
my_list[3,6]    #从索引位置3到6(但不包括6)
  • 使用集合来删除重复项

Python中集合最突出的特性是集合中的数据项是无序的,而且不允许重复

list = [1,1,2,2,4,6,7,8]
new_list = set(list)
print(new_list)      #此时new_list集合即是无序的,且没有重复项

 

  • 4个运动员成绩存放在4个文本里,分别读取并筛选出每个选手跑得最快的3个时间

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

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

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

思路:1,处理字符串使变成格式统一(写成函数)   2,排序去重(使用set())   3,取出3个最好成绩(使用列表分片)

五、推导数据 ----- 处理数据

标签:

原文地址:http://www.cnblogs.com/bing0818/p/4914530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!