# 時間格式化函數(shù)
def sanitize(time_string):if '-' in time_string:splitter = '-'elif ':' in time_string:splitter = ':'else:return(time_string)(mins, secs) = time_string.split(splitter)return(mins + '.' + secs)# 讀取文件內(nèi)的時間數(shù)據(jù)
try:with open('james.txt') as jaf:data = jaf.readline()james = data.strip().split(',')with open('julie.txt') as juf:data = juf.readline()julie = data.strip().split(',')with open('mikey.txt') as mif:data = mif.readline()mikey = data.strip().split(',')with open('sarah.txt') as saf:data = saf.readline()sarah = data.strip().split(',')
except IOError as err:print("File Error: " + str(err))# 列表轉(zhuǎn)換
james = sorted([sanitize(each_item) for each_item in james])
julie = sorted([sanitize(each_item) for each_item in julie])
mikey = sorted([sanitize(each_item) for each_item in mikey])
sarah = sorted([sanitize(each_item) for each_item in sarah])# 排序輸出
u_james = []
for t in james:if t not in u_james:u_james.append(t)
print(u_james[0:3])
u_julie = []
for t in julie:if t not in u_julie:u_julie.append(t)
print(u_julie[0:3])
u_mikey = []
for t in mikey:if t not in u_mikey:u_mikey.append(t)
print(u_mikey[0:3])
u_sarah = []
for t in sarah:if t not in u_sarah:u_sarah.append(t)
print(u_sarah[0:3])
此外,Python還給我們提供了集合,集合的特點是無序、無重復(fù)
set() 創(chuàng)建一個空集合
# 時間格式化函數(shù)
def sanitize(time_string):if '-' in time_string:splitter = '-'elif ':' in time_string:splitter = ':'else:return(time_string)(mins, secs) = time_string.split(splitter)return(mins + '.' + secs)# 讀取文件內(nèi)的時間數(shù)據(jù)
try:with open('james.txt') as jaf:data = jaf.readline()james = data.strip().split(',')with open('julie.txt') as juf:data = juf.readline()julie = data.strip().split(',')with open('mikey.txt') as mif:data = mif.readline()mikey = data.strip().split(',')with open('sarah.txt') as saf:data = saf.readline()sarah = data.strip().split(',')
except IOError as err:print("File Error: " + str(err))# 列表轉(zhuǎn)換、排序、輸出
james = sorted(set([sanitize(each_item) for each_item in james]))[0:3]
print(james)
julie = sorted(set([sanitize(each_item) for each_item in julie]))[0:3]
print(julie)
mikey = sorted(set([sanitize(each_item) for each_item in mikey]))[0:3]
print(mikey)
sarah = sorted(set([sanitize(each_item) for each_item in sarah]))[0:3]
print(sarah)
文件讀取部分依然有許多重復(fù),封裝文件讀取部分
# 時間格式化函數(shù)
def sanitize(time_string):if '-' in time_string:splitter = '-'elif ':' in time_string:splitter = ':'else:return(time_string)(mins, secs) = time_string.split(splitter)return(mins + '.' + secs)# 對文件讀取進(jìn)行封裝
def reader(file):try:with open(file) as datafile:return (datafile.readline().strip().split(','))except IOError as err:print("File Error: " + str(err))return (None)
# 讀取文件內(nèi)的時間數(shù)據(jù)
james = reader('james.txt')
julie = reader('julie.txt')
mikey = reader('mikey.txt')
sarah = reader('sarah.txt')# 列表轉(zhuǎn)換、排序、輸出
james = sorted(set([sanitize(each_item) for each_item in james]))[0:3]
print(james)
julie = sorted(set([sanitize(each_item) for each_item in julie]))[0:3]
print(julie)
mikey = sorted(set([sanitize(each_item) for each_item in mikey]))[0:3]
print(mikey)
sarah = sorted(set([sanitize(each_item) for each_item in sarah]))[0:3]
print(sarah)