国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

head first python(第五章)–學習筆記

aikin / 793人閱讀

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

1.排序有兩種方式

原地排序(in-place sorting),按指定的順序排列數據,然后用排序后的數據替換原來的數據。原來的順序會丟失。

sort()

復制排序(copied sorting),按你指定的順序排序,然后返回原數據的一個有序副本。原數據的順序依然保留。

sorted()
  方法串聯(method chaining)
  
  

第一個方法應用到數據中,然后再將處理好的數據應用到第二個方法中。從左向右讀。

例子:

data.strip().split(",")

函數串聯(function chaining)

每個函數會取得數據,對他完成某個操作,然后把轉換后的數據繼續向下傳遞到下一個函數。 從右向左讀。

例子:

print(sorted(james))

2.數據不一致導致排序中出現問題,需要整理數據

創建一個函數,傳入時間參數,然后將不一致的(-,:)數據清除掉,然后將其分割為分和秒,然后整合在一起,形成統一時間格式 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.不過代碼看來十分臃腫,學會使用推導列表
clean_mikey = []

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

變成

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

新列表         轉換方法            for循環       列表

append動作隱含在里面了。

推導列表有點奇怪,不過寫多幾次就熟悉了。

[m * 60 for m in mins]

[s.upper() for s in lower]

[float(s) for s in clean]

使用推導列表后,程序簡化了

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.只需要前三項數據

可以使用列表分片
如:

james[0:3]
5.刪除重復項

有2種方法:
1.用集合的方法,集合的特性是數據是無序的,而且不允許重復。

james = {10.6,11,10.6}

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

這樣distances出來的數據就是無序且不重復的。

2.用遍歷的方法

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

  

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


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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37546.html

相關文章

  • Head First Python 學習心得(1-6章)

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

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

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

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

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

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

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

    venmos 評論0 收藏0

發表評論

0條評論

aikin

|高級講師

TA的文章

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