Head First Python第五部分http://python.itcarlow.ie/resources.html可以下载到本文需要的四个txt文件
读取每个txt文件,去掉不必要的空格,将每个文件中的数据,以列表的形式打印显示。
try:
with open('james.txt','r') as james_file,open('julie.txt','r')as julie_file,open('mikey.txt','r')as mikey_file,open('sarah.txt','r')as sarah_file:
james_list = james_file.readline().strip().split(',')
julie_list = julie_file.readline().strip().split(',')
mikey_list = mikey_file.readline().strip().split(',')
sarah_list = sarah_file.readline().strip().split(',')
print(james_list)
print(julie_list)
print(mikey_list)
print(sarah_list)
except IOError as err:
print('File error:'+str(err))
运行结果:
['2-34', '3:21', '2.34', '2.45', '3.01', '2:01', '2:01', '3:10', '2-22']
['2.59', '2.11', '2:11', '2:23', '3-10', '2-23', '3:10', '3.21', '3-21']
['2:22', '3.01', '3:01', '3.02', '3:02', '3.02', '3:22', '2.49', '2:38']
['2:58', '2.58', '2:39', '2-25', '2-55', '2:54', '2.18', '2:55', '2:55']
原地排序(In-place sorting)按你指定的顺序排列数据,然后用排序后的数据替换原来的数据。原来的顺序会丢失。对于列表,sort()方法会提供原地排序
复制排序(Copied sorting)是按你指定的顺序排列数据,然后返回原数据的一个有序副本。原数据的顺序依然保留,只是对一个副本排序。在Python中,sorted()BIF支持复制排序。
函数:sanitize。将冒号和横线转换为点号。
def sanitize(time_string):
if '-' in time_string:
spliter = '-'
elif ':' in time_string:
spliter = ':'
else:
return (time_string)
(min,secs) = time_string.split(spliter)
return (min+'.'+secs)
对上述列表数据进行处理
new_james_list=[]
new_julie_list=[]
new_mikey_list=[]
new_sarah_list=[]
for james_time in james_list:
new_james_list.append(nester.sanitize(james_time))
for julie_time in julie_list:
new_julie_list.append(nester.sanitize(julie_time))
for mikey_time in mikey_list:
new_mikey_list.append(nester.sanitize(mikey_time))
for sarah_time in sarah_list:
new_sarah_list.append(nester.sanitize(sarah_time))
运行结果:
>>> print(sorted(new_james_list))
['2.01', '2.01', '2.22', '2.34', '2.34', '2.45', '3.01', '3.10', '3.21']
>>> print(sorted(new_julie_list))
['2.11', '2.11', '2.23', '2.23', '2.59', '3.10', '3.10', '3.21', '3.21']
>>> print(sorted(new_mikey_list))
['2.22', '2.38', '2.49', '3.01', '3.01', '3.02', '3.02', '3.02', '3.22']
>>> print(sorted(new_sarah_list))
['2.18', '2.25', '2.39', '2.54', '2.55', '2.55', '2.55', '2.58', '2.58']
如何降序排列?