head first python(第五章)–學(xué)習(xí)筆記

1.排序有兩種方式

原地排序(in-place sorting),按指定的順序排列數(shù)據(jù)起趾,然后用排序后的數(shù)據(jù)替換原來的數(shù)據(jù)粟耻。原來的順序會丟失渣慕。

sort()

復(fù)制排序(copied sorting),按你指定的順序排序,然后返回原數(shù)據(jù)的一個有序副本裂逐。原數(shù)據(jù)的順序依然保留歹鱼。

sorted()

方法串聯(lián)(method chaining)

第一個方法應(yīng)用到數(shù)據(jù)中,然后再將處理好的數(shù)據(jù)應(yīng)用到第二個方法中卜高。從左向右讀弥姻。

例子:

data.strip().split(',')

函數(shù)串聯(lián)(function chaining)

每個函數(shù)會取得數(shù)據(jù),對他完成某個操作掺涛,然后把轉(zhuǎn)換后的數(shù)據(jù)繼續(xù)向下傳遞到下一個函數(shù)庭敦。 從右向左讀。

例子:

print(sorted(james))

2.數(shù)據(jù)不一致導(dǎo)致排序中出現(xiàn)問題薪缆,需要整理數(shù)據(jù)

創(chuàng)建一個函數(shù)秧廉,傳入時間參數(shù),然后將不一致的(-拣帽,:)數(shù)據(jù)清除掉疼电,然后將其分割為分和秒,然后整合在一起减拭,形成統(tǒng)一時間格式 MM:SS 澜沟。

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)

然后修改代碼

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)

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(',')

clean_james = []
clean_julie = []
clean_mikey = []
clean_sarah = []

---------臃腫的部分------------
for each_t in james:
    clean_james.append(sanitize(each_t))

for each_t in julie:
    clean_julie.append(sanitize(each_t))

for each_t in mikey:
    clean_mikey.append(sanitize(each_t))
    
for each_t in sarah:
    clean_sarah.append(sanitize(each_t))

print(sorted(clean_james))
print(sorted(clean_julie))
print(sorted(clean_mikey))
print(sorted(clean_sarah))
---------臃腫的部分------------

3.不過代碼看來十分臃腫,學(xué)會使用推導(dǎo)列表

clean_mikey = []

for each_t in mikey:
    clean_mikey.append(sanitize(each_t))

變成

clean_mikey = [sanitize(each_t) for each_t in mikey]

新列表         轉(zhuǎn)換方法            for循環(huán)       列表

append動作隱含在里面了峡谊。

推導(dǎo)列表有點奇怪茫虽,不過寫多幾次就熟悉了。

[m * 60 for m in mins]

[s.upper() for s in lower]

[float(s) for s in clean]

使用推導(dǎo)列表后既们,程序簡化了

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]))

4.只需要前三項數(shù)據(jù)

可以使用列表分片
如:

james[0:3]

5.刪除重復(fù)項

有2種方法:
1.用集合的方法濒析,集合的特性是數(shù)據(jù)是無序的,而且不允許重復(fù)啥纸。

james = {10.6,11,10.6}

distances = set(james)  #set()就是集合的方法

這樣distances出來的數(shù)據(jù)就是無序且不重復(fù)的号杏。

2.用遍歷的方法

unique_james = []
for each_t in james:
    if each_t not in unique_james:  #判斷是否在數(shù)組中,不在就放進新的數(shù)組
        unique_james.append(each_t)

BTW:
python中有兩種類型的列表,一種是可以改變的列表(用中括號包圍)盾致,一種是不可改變的列表(用小括號包圍)-叫元組tuple主经,還有一種不是列表,是集合庭惜,用大括號包圍罩驻。


原文引用:http://www.godblessyuan.com/2015/04/27/head_first_python_chapter_5_learning/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市护赊,隨后出現(xiàn)的幾起案子惠遏,更是在濱河造成了極大的恐慌,老刑警劉巖骏啰,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件节吮,死亡現(xiàn)場離奇詭異,居然都是意外死亡判耕,警方通過查閱死者的電腦和手機透绩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壁熄,“玉大人渺贤,你說我怎么就攤上這事∏朊” “怎么了志鞍?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長方仿。 經(jīng)常有香客問我固棚,道長,這世上最難降的妖魔是什么仙蚜? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任此洲,我火速辦了婚禮,結(jié)果婚禮上委粉,老公的妹妹穿的比我還像新娘呜师。我一直安慰自己,他們只是感情好贾节,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布汁汗。 她就那樣靜靜地躺著,像睡著了一般栗涂。 火紅的嫁衣襯著肌膚如雪知牌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天斤程,我揣著相機與錄音角寸,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛扁藕,可吹牛的內(nèi)容都是我干的沮峡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼亿柑,長吁一口氣:“原來是場噩夢啊……” “哼邢疙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起橄杨,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤秘症,失蹤者是張志新(化名)和其女友劉穎照卦,沒想到半個月后式矫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡役耕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年采转,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞬痘。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡故慈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出框全,到底是詐尸還是另有隱情察绷,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布津辩,位于F島的核電站拆撼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏喘沿。R本人自食惡果不足惜闸度,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚜印。 院中可真熱鬧莺禁,春花似錦、人聲如沸窄赋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忆绰。三九已至柒傻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間较木,已是汗流浹背红符。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人预侯。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓致开,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萎馅。 傳聞我的和親對象是個殘疾皇子双戳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 〇、前言 本文共108張圖糜芳,流量黨請慎重飒货! 歷時1個半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識的框架詳細(xì)梳理了一遍峭竣。 ...
    Raxxie閱讀 18,966評論 17 410
  • 我們到底要給孩子多少時間 文|80后奶爸 在讀《愛與自由》第十二章時塘辅,有這樣的一段讓我印象深刻: 在人的一生中,拿...
    三一冰閱讀 185評論 2 1
  • 既然結(jié)尾這么重要了,那常用的結(jié)尾方法有哪些呢扛吞?經(jīng)筆者總結(jié)呻惕,大約有兩大類十四種。現(xiàn)在滥比,筆者一一介紹如下: 二亚脆、引用類...
    演講與寫作閱讀 3,309評論 75 58