摘要:一列表是一個(gè)可以在其中存儲(chǔ)一系列項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)。的項(xiàng)目之間需用逗號(hào)分開,并用一對中括號(hào)括將所有的項(xiàng)目括起來,以表明這是一個(gè)。序列不但支持負(fù)數(shù)下標(biāo)還支持雙下標(biāo),這對雙下標(biāo)表示一個(gè)區(qū)間。這種操作被稱作切片操作。
一、列表(List)
list 是一個(gè)可以在其中存儲(chǔ)一系列項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)。list 的項(xiàng)目之間需用逗號(hào)分開,并用一對中括號(hào)括將所有的項(xiàng)目括起來,以表明這是一個(gè) list 。下例用以展示 list 的一些基本操作:
# 定義一個(gè) list 對象 class_list: class_list = ["Michael", "Bob", "Tracy"] # 獲得一個(gè) class_list 的長度 print "class have", len(class_list), "students" # 訪問class_list中的對象 print "The 3rd student in class is", class_list[2] # 往 class_list 中插入對象 class_list.append("Paul") # 從 class_list 中刪除一個(gè)項(xiàng)目 del class_list[0] # 對 class_list 進(jìn)行排序 class_list.sort() # 遍歷整個(gè)class_list中的項(xiàng)目 print "These students are :", for student in class_list: print student,
輸出結(jié)果為:
class have 3 students The 3rd student in class is Tracy These students are : Bob Paul Tracy
關(guān)于上面的代碼有幾點(diǎn)要注意的是:
可以往 class_list 中加入任何類型的對象,也就是說,并不要求一個(gè) list 中的項(xiàng)目具有相同類型。你甚至可以往 class_list 中插入一個(gè)list。
排序函數(shù)作用于本身, 而不是返回一個(gè)副本,這與字符串類型是不同的,因?yàn)樽址豢尚薷摹?/p>
print 函數(shù)的end關(guān)鍵字參數(shù)用來指定輸入完成之后的輸出,默認(rèn)是換行符,上面的代碼用空格符替代換行符。
二、元組(Tuple)tuple 在用法與概念上與 list 沒有多大差別,可以將 tuple 看做是一個(gè)只讀版list。也就是說tuple一經(jīng)定義便不能被修改——不能添加和刪除對象,也不能修改tuple中的對象。
tuple中的項(xiàng)同樣應(yīng)該用逗號(hào)分開,并用圓括號(hào)將這些項(xiàng)目括起來以表是是一個(gè)tuple。這個(gè)圓括號(hào)是可選的,也就是說可以用以下兩種方式定義一個(gè)tuple:
t = "Adam", "Lisa", "Bart" t = ("Adam", "Lisa", "Bart")
不過省掉那對圓括號(hào)不見得是什么好的習(xí)慣。另外當(dāng)tuple只有一個(gè)項(xiàng)時(shí),第一項(xiàng)之后必須有一個(gè)逗號(hào),該情況下應(yīng)該這樣定義t = ("Adam",)。這似乎是一個(gè)古怪的約束,但是假如沒有這個(gè)逗號(hào),不帶括號(hào)定義的tuple就變成了t = "Adam"這明顯具有二義性。
三、字典(Dictionary)字典可以看做是一組鍵-值(key-value)對的集合。鍵必須是唯一的,而每一個(gè)鍵關(guān)聯(lián)著一個(gè)值。key必須是一個(gè)不可變的對象(如:tuple、數(shù)值型、字符串)。還要注意的是,在字典中的鍵值對并沒有以任何方式進(jìn)行排序。
一個(gè)字典的定義應(yīng)該照這樣的格式d={key1 : value1, key2 : value2, key3 : value3}。鍵和值之間用冒號(hào)分隔,而鍵值對之間用逗號(hào)相隔,再用大括號(hào)將所有的鍵值對括起來。一些基本操作如下:
# 字典的定義 d = { "Adam": 95, "Lisa": 85, "Bart": 59 } # 通過鍵來獲取值 print "Adam"s score is", d["Adam"] # 刪除一個(gè)鍵值對 del d["Bart"] # 遍歷字典 for name, score in d.items(): print "{0} is {1}".format(name, score) # 往字典中增加一個(gè)鍵值對 d["Paul"] = 72 # 判斷字典中是否存在某鍵,也可以用 if ab.has_key("Lisa") if "Lisa" in d: print "Lisa"s address is", d["Lisa"]
輸出的結(jié)果為:
Adam"s score is 95 Lisa is 85 Adam is 95 Lisa"s address is 85四、序列(Sequences)
上面介紹的三種內(nèi)建數(shù)據(jù)結(jié)構(gòu)都是序列,索引操作是序列的一個(gè)基本操作。通過下標(biāo)操作可以直接訪問序列中的對象。上面雖然已經(jīng)演示了下標(biāo)操作——隊(duì)列和元組用數(shù)字下標(biāo),字典用關(guān)鍵字下標(biāo)。
序列的下標(biāo)是從0開始的,上面的例子中只使用了下標(biāo)為正數(shù)的情況,其實(shí)下標(biāo)還可以為負(fù)數(shù),如-1,-2,-3…。負(fù)數(shù)下標(biāo)表示的意義為反方向的位置,如class_list[-1]返回的是class_list的倒數(shù)第一個(gè)項(xiàng)目。
序列不但支持負(fù)數(shù)下標(biāo)還支持雙下標(biāo),這對雙下標(biāo)表示一個(gè)區(qū)間。如class_list[0:3]返回的是一個(gè)class_list中從下標(biāo)為1到下標(biāo)為3之前的子序列副本。注意這個(gè)區(qū)間是一對半閉半開的區(qū)間。這種操作被稱作切片操作(slicing operation)。如果切片操作的第二個(gè)下標(biāo)超出了序列的范圍,那么切片操作會(huì)到序列的末尾終止。切片操作中的兩個(gè)下標(biāo)都有默認(rèn)值,第一個(gè)的默認(rèn)值為0,第二個(gè)的大小為序列的長度。
還可以給切片操作提供第三個(gè)參數(shù),第三個(gè)參數(shù)代表切片操作的步長,它的默認(rèn)值是1。步長代表了項(xiàng)與項(xiàng)之間的間距,比方name[0:10:3],返回的就是name中下標(biāo)為0,3,6,9組成的子序列。
五、集合(Set)集合是無序簡單對象的聚集。當(dāng)你只關(guān)注一個(gè)對象是否存在于聚集中,而不管它存在的順序或在出現(xiàn)的次數(shù)時(shí),則適宜用集合。基本功能:判斷是否是集合的成員、一個(gè)集合是不是另一個(gè)集合的子集、獲取兩個(gè)集合的交集等等。實(shí)例:
s = set(["Adam", "Lisa", "Bart", "Paul"]) # 判斷對象是否在集合中 if "Bart" in s: print "Bart is in ?", "Bart" in s # 使用copy函數(shù)來拷貝一個(gè)set sc = s.copy() # 往集合中添加對象 sc.add("Bill") # 從集合中刪除對象 sc.remove("Adam") # 求兩個(gè)集合的交集,也可以使用 s.intersection(sc) print s & sc
輸出的結(jié)果:
Bart is in ? True set(["Lisa", "Paul", "Bart"])
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44192.html
摘要:除此之外的特定形式還有二進(jìn)制序列類型,那么我們在這里所說的序列主要包含以下三種列表列表是一種可變序列,一般形式為,方括號(hào)內(nèi)的各項(xiàng)間用逗號(hào)分隔。 引言 對于以前沒有接觸過任何編程語言的人來說,首先能明確編程的目的很重要,往往能明確一個(gè)目的,在日后的學(xué)習(xí)中遇到困難時(shí)心態(tài)就會(huì)輕松許多。當(dāng)今計(jì)算機(jī)文化的多元化發(fā)展,涌現(xiàn)出了大數(shù)據(jù)、分布式計(jì)算、神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)等眾多新概念,即便這樣,任何意義上...
摘要:獲取怎樣的數(shù)據(jù)在這里首先需要考慮,我們的四則運(yùn)算計(jì)算器的計(jì)算復(fù)雜度是如何的是僅能計(jì)算兩個(gè)數(shù)值的簡單運(yùn)算,如還是能進(jìn)行混合四則運(yùn)算,如那么你想處理運(yùn)算的復(fù)雜程度就決定了你想獲取怎樣的數(shù)據(jù),這是很實(shí)際的問題。 引言 在上一篇文章的介紹中,我們提及了Python的三種基本數(shù)據(jù)類型,如文章末尾所說,Python中的內(nèi)建數(shù)據(jù)類型并不僅僅是這幾種,但其實(shí)我從接觸Python到現(xiàn)在,往往就是這幾種簡...
摘要:函數(shù)返回值支持多個(gè),返回多個(gè)時(shí),使用逗號(hào)分隔。如上,與這個(gè)參數(shù)按照由左到右依次賦值給形參和供函數(shù)內(nèi)部使用。在傳入函數(shù)時(shí),便是將這個(gè)引用傳入了函數(shù)。需要使用關(guān)鍵字聲明將變量作用域變?yōu)楹瘮?shù)外部非全局變量,及閉包作用域。 < 返回索引頁 函數(shù) 函數(shù)定義 返回值 函數(shù)的調(diào)用 函數(shù)的參數(shù) 順序參數(shù) 參數(shù)的默認(rèn)值 可變參數(shù) 關(guān)鍵字參數(shù) 參數(shù)的組合 參數(shù)的專遞 函數(shù)作用域 內(nèi)建...
摘要:但是在轉(zhuǎn)化中,浮點(diǎn)數(shù)轉(zhuǎn)化為二進(jìn)制后,不會(huì)精確等于十進(jìn)制的。一般情況下,只要簡單地將最終顯示的結(jié)果用四舍五入到所期望的十進(jìn)制位數(shù),就會(huì)得到期望的最終結(jié)果。四舍五入內(nèi)建函數(shù)。在中的第二個(gè)數(shù),表示要保留的小數(shù)位數(shù),返回值是一個(gè)四舍五入之后的數(shù)值。 數(shù)字 基本類型 首先,進(jìn)入Python交互模式中: //整數(shù) >>> 3 3 //長整數(shù) >>> 3333333333333333333333...
摘要:前言在官方文檔的標(biāo)準(zhǔn)庫章節(jié)中,第一節(jié)是簡介,第二節(jié)就是,可見內(nèi)建函數(shù)是標(biāo)準(zhǔn)庫的重要組成部分,而有很多內(nèi)建函數(shù)我們平時(shí)卻很少用到或根本就不知道原來還有這么好用的函數(shù)居然直接就可以拿來用。接下來為大家介紹一些我認(rèn)為被大家忽略掉的內(nèi)建函數(shù)。 前言 在Python官方文檔的標(biāo)準(zhǔn)庫章節(jié)中,第一節(jié)是簡介,第二節(jié)就是Built_in Functions,可見內(nèi)建函數(shù)是Python標(biāo)準(zhǔn)庫的重要組成部分...
閱讀 985·2021-11-22 09:34
閱讀 2168·2021-11-11 16:54
閱讀 2206·2021-09-27 14:00
閱讀 950·2019-08-30 15:55
閱讀 1537·2019-08-29 12:46
閱讀 610·2019-08-26 18:42
閱讀 648·2019-08-26 13:31
閱讀 3191·2019-08-26 11:52