目的:將幾個記錄時間時刻的資料格式化統一,然後進行排序。
有四個檔案,檔案的格式都不一樣,都表示時間
james.txt
'2-34', '3:21', '2.34', '2.45', '3.01', '2:01', '2:01', '3:10', '2-22'
julie.txt
'2.59', '2.11', '2:11', '2:23', '3-10', '2-23', '3:10', '3.21', '3-21'
mikey.txt
'2:22', '3.01', '3:01', '3.02', '3:02', '3.02', '3:22', '2.49', '2:38'
sarah.txt
'2:58', '2.58', '2:39', '2-25', '2-55', '2:54', '2.18', '2:55', '2:55'
四個檔案格式不統一,時間點之間有『.』,有『:』,還有『-』,先使用乙個函式將其轉化為:全是』.』的格式,如:『3.01』,**如下:
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)
python中排序有兩種,一種是直接sort(list),另外一種是使用sorted(list)。
第一種會直接覆蓋原來的資料,第二種是新建乙個副本將資料放進去,原來的變數值不變。
整體**如下:
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(',')
print(sorted([sanitize(t) for t in james]))
print(sorted([sanitize(t) for t in julie]))
print(sorted([sanitize(t) for t in mikey]))
print(sorted([sanitize(t) for t in sarah]))
截圖**:
上面的後面三局是將for迴圈和排序寫在一起了,比較如下圖:
說明:這個格式真的是有點虐心,不按照找個格式輸出,idle還報錯,我真的是無語了,除錯了好久,**沒問題,就是格式問題。讓我揪心呀。比如下面這幅圖:
測試結果資料:
['2.01', '2.01', '2.22', '2.34', '2.34', '2.45', '3.01', '3.10', '3.21']
['2.11', '2.11', '2.23', '2.23', '2.59', '3.10', '3.10', '3.21', '3.21']
['2.22', '2.38', '2.49', '3.01', '3.01', '3.02', '3.02', '3.02', '3.22']
['2.18', '2.25', '2.39', '2.54', '2.55', '2.55', '2.55', '2.58', '2.58']
預設地,sort()方法和sorted() bif都會按公升序對資料進行排序。要以降序對資料進行排序,需要向sort()或sorted()傳入引數reverse=treue,python會負責具體處理。 Python學習 格式化輸出
1 格式化輸出的誤區 python會自動進行型別轉換 這句不是書上說的,我從測試結果中推測 驗證 python version 2.7.5 print the number 0.2 is u 0.2 the number 0.2 is 0 print the number 0.2 is u 5 th...
Python學習 格式化輸出
方式一 使用佔位符 常用佔位符 s s string 字串 d d digit 整數 十進位制 f f float 浮點數 name input 請輸入你的名字 age input 請輸入你的年齡 job input 請輸入你的職業 salary input 請輸入你的薪酬 if salary.is...
Python資料的格式化
資料的格式化方法 1.d 整數型a i am d years old print a 15 i am 15 years old2.s 字串a i love s print a lili i love lili3.d與 s的組合a i am d years old,i love s print a 1...