成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

aikin / 808人閱讀

摘要:原來的順序會丟失。原數(shù)據(jù)的順序依然保留。方法串聯(lián)第一個方法應(yīng)用到數(shù)據(jù)中,然后再將處理好的數(shù)據(jù)應(yīng)用到第二個方法中。例子函數(shù)串聯(lián)每個函數(shù)會取得數(shù)據(jù),對他完成某個操作,然后把轉(zhuǎn)換后的數(shù)據(jù)繼續(xù)向下傳遞到下一個函數(shù)。

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37546.html

相關(guān)文章

  • Head First Python 學(xué)習(xí)心得(1-6章)

    摘要:在指定位置刪除并返回這個數(shù)據(jù)項,注意這里是有返回項的。移除某一個特定數(shù)據(jù)項。第二章發(fā)布并上傳代碼到在查閱大量資料發(fā)布和上傳還有很多附屬文件需要編寫和上傳以確保模塊能夠正常發(fā)布和更新。包含函數(shù)串鏈,特點是中包含函數(shù)。 寫在前面:吾嘗終日而思矣,不如須臾之所學(xué)也;吾嘗跂而望矣,不如登高之博見也。登高而招,臂非加長也,而見者遠;順風(fēng)而呼,聲非加疾也,而聞?wù)哒谩<佥涶R者,非利足也,而致千里;假...

    pumpkin9 評論0 收藏0
  • 流暢的python讀書筆記-五章 一等函數(shù)

    摘要:可以通過定位參數(shù)和關(guān)鍵字參數(shù)傳入的形參多數(shù)函數(shù)的參數(shù)屬于此類。就像數(shù)據(jù)格式化一樣數(shù)據(jù)帶上標簽自行創(chuàng)建函數(shù)它會自行創(chuàng)建函數(shù)。創(chuàng)建的函數(shù)會在對象上調(diào)用參數(shù)指定的方法自己創(chuàng)建函數(shù)凍結(jié)參數(shù)這個高階函數(shù)用于部分應(yīng)用一個函數(shù)。 高階函數(shù) 接受函數(shù)為參數(shù),或者把函數(shù)作為結(jié)果返回的函數(shù)是高階函數(shù) def reverse(word): return word[::-1] ...

    546669204 評論0 收藏0
  • SICP Python 描述 五章 序列和協(xié)程

    摘要:消息向迭代器獲取所表示的底層序列的下一個元素。為了對方法調(diào)用做出回應(yīng),迭代器可以執(zhí)行任何計算來獲取或計算底層數(shù)據(jù)序列的下一個元素。這個迭代器應(yīng)擁有方法,依次返回序列中的每個元素,最后到達序列末尾時產(chǎn)生異常。 第五章 序列和協(xié)程 來源:Chapter 5: Sequences and Coroutines 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 5.1 引言 在這一章中,我...

    leap_frog 評論0 收藏0
  • head first python(第四章)–學(xué)習(xí)筆記

    showImg(http://source1.godblessyuan.com/blog_head_first_python_chapter_4_20150426.jpg); 其實持久存儲不僅僅包含文件,還包括數(shù)據(jù)庫等,本章先介紹一部分,先熟悉一下。 熟悉python數(shù)據(jù) #!/usr/bin/python # -*- coding: utf-8 -*- man = [] other =...

    venmos 評論0 收藏0

發(fā)表評論

0條評論

aikin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<