1. 程式人生 > >【Python】[06]推導資料

【Python】[06]推導資料

本章主要展示用python如何處理目標資料,包括統一資料格式、去除重複資料、資料排序

在處理資料的過程中,用到了列表推導,列表分片和建立集合。

統一資料格式:

處理統一資料的過程中,需要建立一個函式,使用前面章節中學到的for迴圈遍歷每個列表中的資料,然後用if...else語句,將中間不符合統一規範的字元替換成統一字元即可,程式碼如下:

def sanitize(time_string):
if "-"in time_string:
splitter="-"
elif ":"in time_string:
splitter=":"
else:
print time_string
(mins,secs)=time_string.split(splitter)
return (mins+"."+secs)

 同意資料格式後,可對已知資料進行排序,排序會用到兩個方法,sort()和sorted(),這兩個BIF都時預設按照升序對資料進行排列,要以降序排列資料,需要向sort()或sorted()傳入引數reverse=True

推導資料:

將一個列表轉換為另一個列表,需要做一下四件事:

1、建立一個新列表來存放轉換後的資料

2、迭代處理原列表中的各個資料項

3、每次迭代時完成轉換

4、將轉換後的資料追加到新的列表

推導列表的好處是避免重複的去建立列表

比如,我要使用上面統一資料的函式,將已有列表中的資料進行統一資料格式,用推導資料的方式,就不必先建立一個空列表,再來處理資料,一行程式碼就可以搞定:

new_link=[sanitize(each_item) for each_item in old_link]

 new_link就是建立的新列表,sanitize()是一種轉換,each_item就是目標識別符號,old_link指現有列表。

去除重複資料:

正常的去除列表重複資料的邏輯是:迭代處理原列表中的各資料,從第一個資料開始,向另一個列表中追加,如果另一個列表中已有,則不再追加進去。這樣的話需要一個小的迭代迴圈實現。

不過python有一個“工廠”函式set()可以直接實現資料的去重。

工廠函式:用於建立某種型別的新的資料項,估計是建立者覺得他的作用和工廠差不多,因此給他取名工廠函式吧。

set()的作用是建立一個新的集合,而集合的定義,剛好不允許有重複項,當出現重複項的時候,會把重複項過濾掉。(高中數學已經記不得了,百度了下集合的含義,有一個特性是互異性,這裡指的就是沒有重複項)

列表分片:

在菜鳥教程中,列表的分片已經講的很詳細了,就是指,輸出列表中,從起始位置開始,到結束位置的列表資料。

 

嗯,這一節還是收穫頗多的,雖然距離上一節跨度蠻大,後面要追上來繼續學習了。

晚安~~