Python之Tuple
来源:互联网 发布:流程优化岗面试题目 编辑:程序博客网 时间:2024/05/19 00:14
在COURSERA课程里面,老师教了两种sort Tuple的方法。
一种是:
dic = {'c':1,'b':2,'a':3}ite = d.items()t.sort()print (t)
思路很清晰。意思是,你tuple不是不让sort嘛。我就利用dictionary里面的items 先把dic的key-value pair给输出,然后再sort(以key为目标)。恩,很赞。答案是Traceback。- -
Python 这只狗狗给我的回复是:
‘dict_items’ object has no attribute ‘sort’。
开始并不明白是几个意思,问题出在哪儿。直到我
print (d.items())
得到结果是:dict_items([(‘a’, 3), (‘c’, 1), (‘b’, 2)])。
从而发觉,Charles给的答案[(‘a’, 3), (‘c’, 1), (‘b’, 2)]。在python3.3.5已经不适用了。(顺便感慨一下python的更新速度,前两天因为matlab和python匹配地关系,卸载掉了python3.4(其实是直接删掉了)。发现python已经到3.5.0了,真是BT。。。)
但这样就不能sort dic的items了吗?其实不是的。Charcles给了另外一个办法。经测验OK!
dic = {'c':1,'b':2,'a':3}t = sorted(d.items())print (t)
乍一看,简洁了不少。其实就是把dic 的items和sort并在了一个命令行,只不过顺序啦,括号啦,sort有木有加ed啦。要注意一下。
经检验,结果正确。返回[(‘a’, 3), (‘b’, 2), (‘c’, 1)]。
很好。刚刚废话了一大堆。结果不小心删掉了。重来再来。不说废话。直接上菜!
这道题让把所有以’From ‘开头的句子中的‘Hour’找出来。再以‘Hour’的顺序print。啥意思?看desired output:
写code最重要一点是一步步来。我们可以分析。首先是要找以‘From ‘开头,恩,这里有一个startswith得用吧;齐次,我们看看例句,每一个以‘From ’开头的句子的格式,可以发现,先用split()将其拆分,然后把第六项(index=5)找出来,就可以得到整个时间段,然后再用split(:)将其拆分,就得到Hour Min Second,然后再把第一项(index=0)读入,得到Hour。最后放进一个dic里面。输出。
好啦,直接上code啦。该吃饭啦~~~~
name = raw_input("Enter file:")if len(name) < 1 : name = "mbox-short.txt"handle = open(name) #前文介绍过的【读入文件及其偷懒大法】A = []B = []C = []#筛选txt中以‘From ’开头的line,将其放置在一个List-A中。此时list中每个元素是line,类型为str。for line in handle: if line.startswith('From '): A.append(line)#print a # Pls ignore me# 将list中的str类型的sens提取出。进行split()。每个a的第六项则为我们的time(格式为小时:分钟:秒)。#将其放在list-B中。此时list中每个元素是time,类型为str。for sens in A: a = sens.split() #print a[5] B.append(a[5])#print B# 同样将list中的str类型的time提取出。进行split(':'),因为时间是以semicolon划分的,#所以我们用semicolon进行split。每个b的第一项则为我们得HOUR。将其放在list-C中。for time in B: b = time.split(':') #print b C.append(b[0])#print C # 将C中的hour进行count,放进dic-d中。这里我们采用一种比较Advanced方法,用get(),其意思是,#在把list的元素排排好放进dic过程中,若dic中并没有list元素,即key,则给value1,若有,则+1。#最后的最后,我们按照desired output的形式进行print。#CAVEAT: 写作业的时候用的是网页版的#autograder,所以是直接print k,v;用python3.x的时候要记得加()括号小朋友哦!d={}for hour in C: d[hour]=d.get(hour,0)+1#print ditem =d.items()item.sort()for k,v in item: print k,v
这里有一个需要注意点是我们在该题中常用的split用法。split()是连接Str和List,但更确切地说,是将str split后放在一个LIST里面。也就是说,split只能对str作用。那本题中list和str的转换很重要。所以这里面的几个for很重要….
大功告成。最近有点小忙。Python继续,C#也要开始学了,项目火烧眉毛。G某要坚持哦~!(*  ̄3)(ε ̄ *)
- Python 之 tuple
- Python之Tuple
- Python之创建tuple
- Python数据类型 之 tuple
- Python之创建tuple
- Python之创建tuple
- Python内置数据类型之Tuple
- Python基础数据结构之tuple
- Python之“可变”的tuple
- 《Python 源码剖析》 之 tuple
- python之tuple与list
- python入门之二:tuple
- Python基础篇之tuple一.(创建tuple)
- Python基础篇之tuple二.(创建单元素tuple)
- Python基础篇之tuple三.(“可变”的tuple)
- Python数据结构之——tuple
- Python学习第二篇之tuple
- python学习之List和Tuple
- Linux tcpdump命令详解
- [Java web]Could not find configuration [org.hibernate.cache.UpdateTimestampsCache]; using defaults
- C++中的struct和class的区别
- Cocos2d-x设计模式 -- 工厂模式
- HTTP请求和响应格式
- Python之Tuple
- C#的集合类型
- vs2010 命令行编译C/C++程序
- pygame——入门1
- 数据库知识整理(1)
- Python标准库os模块
- 理解一致性哈希算法(consistent hashing)
- 自己动手学TCP/IP–http协议(http报文格式)
- HTTP协议及其请求头分析