摘要:原來的順序會丟失。原數(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)2.數(shù)據(jù)不一致導(dǎo)致排序中出現(xiàn)問題,需要整理數(shù)據(jù)第一個方法應(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))
創(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
摘要:在指定位置刪除并返回這個數(shù)據(jù)項,注意這里是有返回項的。移除某一個特定數(shù)據(jù)項。第二章發(fā)布并上傳代碼到在查閱大量資料發(fā)布和上傳還有很多附屬文件需要編寫和上傳以確保模塊能夠正常發(fā)布和更新。包含函數(shù)串鏈,特點是中包含函數(shù)。 寫在前面:吾嘗終日而思矣,不如須臾之所學(xué)也;吾嘗跂而望矣,不如登高之博見也。登高而招,臂非加長也,而見者遠;順風(fēng)而呼,聲非加疾也,而聞?wù)哒谩<佥涶R者,非利足也,而致千里;假...
摘要:可以通過定位參數(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] ...
摘要:消息向迭代器獲取所表示的底層序列的下一個元素。為了對方法調(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 引言 在這一章中,我...
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 =...
閱讀 2108·2023-04-26 00:09
閱讀 3133·2021-09-26 10:12
閱讀 3502·2019-08-30 15:44
閱讀 2872·2019-08-30 13:47
閱讀 932·2019-08-23 17:56
閱讀 3236·2019-08-23 15:31
閱讀 481·2019-08-23 13:47
閱讀 2523·2019-08-23 11:56