用dict来实现内容~
值得注意的内容有:dict声明,赋值,遍历。list.pop(0)取链表头的值
import os
os.chdir('D:\python\hfpy_ch6_data')
def cleanTime(s):
if '-' in s:
(min,sec)=s.split('-')
return (min+'.'+sec)
if ':' in s:
(min,sec)=s.split(':')
return (min+'.'+sec)
if '.' in s:
return s
def getFileDate(file_s):
try:
with open(file_s,'r') as file_i:
file_data=file_i.readline().strip('\n').split(',')
return
{'name':file_data.pop(0),'birthday':file_data.pop(0),
'data':(sorted(set([cleanTime(s) for s in file_data])))[0:3]}
#list.pop 用法~
except IOError as err:
print(str(err))
james=getFileDate('james2.txt')
//#dict的访问
print(james['data'])
#dict的遍历
for i in james:
print ("james[%s]=" %i,james[i])
for (k,v) in james.items():
print(k,end=':')
print(v)
#iteritems在这一版依然没有了
用类来实现封装
一个是类型方法 所有的。。。都带self。这跟其他的都不一样哦!就是这个问题啦~
还有一点构造函数的写法。。。init
import os
os.chdir('D:\python\hfpy_ch6_data')
def cleanTime(s):
if '-' in s:
(min,sec)=s.split('-')
return (min+'.'+sec)
if ':' in s:
(min,sec)=s.split(':')
return (min+'.'+sec)
if '.' in s:
return s
class Athlete:
def __init__(self,bth,name,list_data):
self.list_data=list_data
self.name=name
self.bth=bth
def getTop3(self):
return self.list_data[0:3]
def getFileDate(file_s):
try:
with open(file_s,'r') as file_i:
file_data=file_i.readline().strip('\n').split(',')
return Athlete(file_data.pop(0),file_data.pop(0),(sorted(set([cleanTime(s) for s in file_data]))))
except IOError as err:
print(str(err))
james=getFileDate('james2.txt')
print(james.getTop3())
用继承list来实现
1.下面两种基类的初始化方法都对。
2.开始以为用 super(swift)..没想到直接用的基类名~ 新奇
import os
os.chdir('D:\python\hfpy_ch6_data')
def cleanTime(s):
if '-' in s:
(min,sec)=s.split('-')
return (min+'.'+sec)
if ':' in s:
(min,sec)=s.split(':')
return (min+'.'+sec)
if '.' in s:
return s
class Athlete(list):
def __init__(self,bth,name,list_data=[]):
list.__init__([])
self.extend(list_data)
#这里两种继承初始化基类的方法都对~
## list.__init__(self,list_data)
self.name=name
self.bth=bth
def getFileDate(file_s):
try:
with open(file_s,'r') as file_i:
file_data=file_i.readline().strip('\n').split(',')
return Athlete(file_data.pop(0),file_data.pop(0),(sorted(set([cleanTime(s) for s in file_data]))))
except IOError as err:
print(str(err))
james=getFileDate('james2.txt')
print(james[0:3])
print(james)
语法风格上javascript swift python还挺相似的