Python學習 格式化資料並排序

2021-07-02 14:25:55 字數 2591 閱讀 9881

目的:將幾個記錄時間時刻的資料格式化統一,然後進行排序。

有四個檔案,檔案的格式都不一樣,都表示時間

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...