最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python內(nèi)建數(shù)據(jù)結(jié)構(gòu)詳解

 更新時(shí)間:2016年02月03日 10:27:36   投稿:hebedich  
本文給大家匯總介紹了Python中的5種內(nèi)建數(shù)據(jù)結(jié)構(gòu)以及操作示例,非常的詳細(xì),有需要的小伙伴可以參考下。

一、列表(List)

list 是一個(gè)可以在其中存儲(chǔ)一系列項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)。list 的項(xiàng)目之間需用逗號(hào)分開(kāi),并用一對(duì)中括號(hào)括將所有的項(xiàng)目括起來(lái),以表明這是一個(gè) list 。下例用以展示 list 的一些基本操作:

# 定義一個(gè) list 對(duì)象 class_list:
class_list = ['Michael', 'Bob', 'Tracy']
# 獲得一個(gè) class_list 的長(zhǎng)度
print 'class have', len(class_list), 'students'
# 訪問(wèn)class_list中的對(duì)象
print 'The 3rd student in class is', class_list[2]
# 往 class_list 中插入對(duì)象
class_list.append('Paul')
# 從 class_list 中刪除一個(gè)項(xiàng)目
del class_list[0]
# 對(duì) 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 中加入任何類(lèi)型的對(duì)象,也就是說(shuō),并不要求一個(gè) list 中的項(xiàng)目具有相同類(lèi)型。你甚至可以往 class_list 中插入一個(gè)list。
排序函數(shù)作用于本身, 而不是返回一個(gè)副本,這與字符串類(lèi)型是不同的,因?yàn)樽址豢尚薷摹?br /> print 函數(shù)的end關(guān)鍵字參數(shù)用來(lái)指定輸入完成之后的輸出,默認(rèn)是換行符,上面的代碼用空格符替代換行符。

二、元組(Tuple)

tuple 在用法與概念上與 list 沒(méi)有多大差別,可以將 tuple 看做是一個(gè)只讀版list。也就是說(shuō)tuple一經(jīng)定義便不能被修改——不能添加和刪除對(duì)象,也不能修改tuple中的對(duì)象。

tuple中的項(xiàng)同樣應(yīng)該用逗號(hào)分開(kāi),并用圓括號(hào)將這些項(xiàng)目括起來(lái)以表是是一個(gè)tuple。這個(gè)圓括號(hào)是可選的,也就是說(shuō)可以用以下兩種方式定義一個(gè)tuple:

t = 'Adam', 'Lisa', 'Bart'
t = ('Adam', 'Lisa', 'Bart')
不過(guò)省掉那對(duì)圓括號(hào)不見(jiàn)得是什么好的習(xí)慣。另外當(dāng)tuple只有一個(gè)項(xiàng)時(shí),第一項(xiàng)之后必須有一個(gè)逗號(hào),該情況下應(yīng)該這樣定義t = ('Adam',)。這似乎是一個(gè)古怪的約束,但是假如沒(méi)有這個(gè)逗號(hào),不帶括號(hào)定義的tuple就變成了t = 'Adam'這明顯具有二義性。

三、字典(Dictionary)

字典可以看做是一組鍵-值(key-value)對(duì)的集合。鍵必須是唯一的,而每一個(gè)鍵關(guān)聯(lián)著一個(gè)值。key必須是一個(gè)不可變的對(duì)象(如:tuple、數(shù)值型、字符串)。還要注意的是,在字典中的鍵值對(duì)并沒(méi)有以任何方式進(jìn)行排序。

一個(gè)字典的定義應(yīng)該照這樣的格式d={key1 : value1, key2 : value2, key3 : value3}。鍵和值之間用冒號(hào)分隔,而鍵值對(duì)之間用逗號(hào)相隔,再用大括號(hào)將所有的鍵值對(duì)括起來(lái)。一些基本操作如下:

# 字典的定義
d = {
  'Adam': 95,
  'Lisa': 85,
  'Bart': 59
}
# 通過(guò)鍵來(lái)獲取值
print "Adam's score is", d['Adam']
# 刪除一個(gè)鍵值對(duì)
del d['Bart']
# 遍歷字典
for name, score in d.items():
  print '{0} is {1}'.format(name, score)
# 往字典中增加一個(gè)鍵值對(duì)
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è)基本操作。通過(guò)下標(biāo)操作可以直接訪問(wèn)序列中的對(duì)象。上面雖然已經(jīng)演示了下標(biāo)操作——隊(duì)列和元組用數(shù)字下標(biāo),字典用關(guān)鍵字下標(biāo)。

序列的下標(biāo)是從0開(kāi)始的,上面的例子中只使用了下標(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),這對(duì)雙下標(biāo)表示一個(gè)區(qū)間。如class_list[0:3]返回的是一個(gè)class_list中從下標(biāo)為1到下標(biāo)為3之前的子序列副本。注意這個(gè)區(qū)間是一對(duì)半閉半開(kāi)的區(qū)間。這種操作被稱(chēng)作切片操作(slicing operation)。如果切片操作的第二個(gè)下標(biāo)超出了序列的范圍,那么切片操作會(huì)到序列的末尾終止。切片操作中的兩個(gè)下標(biāo)都有默認(rèn)值,第一個(gè)的默認(rèn)值為0,第二個(gè)的大小為序列的長(zhǎng)度。

還可以給切片操作提供第三個(gè)參數(shù),第三個(gè)參數(shù)代表切片操作的步長(zhǎng),它的默認(rèn)值是1。步長(zhǎng)代表了項(xiàng)與項(xiàng)之間的間距,比方name[0:10:3],返回的就是name中下標(biāo)為0,3,6,9組成的子序列。

五、集合(Set)

集合是無(wú)序簡(jiǎn)單對(duì)象的聚集。當(dāng)你只關(guān)注一個(gè)對(duì)象是否存在于聚集中,而不管它存在的順序或在出現(xiàn)的次數(shù)時(shí),則適宜用集合。基本功能:判斷是否是集合的成員、一個(gè)集合是不是另一個(gè)集合的子集、獲取兩個(gè)集合的交集等等。實(shí)例:

s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
# 判斷對(duì)象是否在集合中
if 'Bart' in s:
  print "Bart is in ?", 'Bart' in s
# 使用copy函數(shù)來(lái)拷貝一個(gè)set
sc = s.copy()
# 往集合中添加對(duì)象
sc.add('Bill')
# 從集合中刪除對(duì)象
sc.remove('Adam')
# 求兩個(gè)集合的交集,也可以使用 s.intersection(sc)
print s & sc

輸出的結(jié)果:

Bart is in ? True
set(['Lisa', 'Paul', 'Bart'])

相關(guān)文章

  • Django如何實(shí)現(xiàn)RBAC權(quán)限管理

    Django如何實(shí)現(xiàn)RBAC權(quán)限管理

    這篇文章主要介紹了Django如何實(shí)現(xiàn)RBAC權(quán)限管理問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python三種遍歷文件目錄的方法實(shí)例代碼

    Python三種遍歷文件目錄的方法實(shí)例代碼

    這篇文章主要介紹了Python三種遍歷文件目錄的方法實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • 利用Pygame繪制圓環(huán)的示例代碼

    利用Pygame繪制圓環(huán)的示例代碼

    這篇文章主要介紹了利用Python中的Pygame模塊繪制一個(gè)彩色的圓環(huán),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Pygame有一定幫助,需要的可以參考一下
    2022-01-01
  • 用Python代碼來(lái)繪制彭羅斯點(diǎn)陣的教程

    用Python代碼來(lái)繪制彭羅斯點(diǎn)陣的教程

    這篇文章主要介紹了用Python代碼來(lái)繪制彭羅斯點(diǎn)陣的教程,核心代碼主要就是一行簡(jiǎn)單的lambda匿名函數(shù),需要的朋友可以參考下
    2015-04-04
  • PyTorch中flatten()?函數(shù)的用法實(shí)例小結(jié)

    PyTorch中flatten()?函數(shù)的用法實(shí)例小結(jié)

    在PyTorch中,flatten函數(shù)的作用是將一個(gè)多維的張量轉(zhuǎn)換為一維的向量,它可以將任意形狀的張量轉(zhuǎn)換為一維,而不需要指定轉(zhuǎn)換后的大小,這篇文章主要介紹了PyTorch中flatten()?函數(shù)的用法,需要的朋友可以參考下
    2023-11-11
  • Python應(yīng)用開(kāi)發(fā)頻繁假死的問(wèn)題分析及解決

    Python應(yīng)用開(kāi)發(fā)頻繁假死的問(wèn)題分析及解決

    最近在開(kāi)發(fā)一款自動(dòng)化的應(yīng)用,但是,在測(cè)試時(shí),卻發(fā)現(xiàn)了問(wèn)題,當(dāng)我點(diǎn)擊暫停任務(wù)后,此時(shí)子線(xiàn)程被阻塞,如果我這個(gè)時(shí)候點(diǎn)擊停止,那么就會(huì)任務(wù)結(jié)束,之后,如果我再點(diǎn)擊開(kāi)始運(yùn)行,整個(gè)應(yīng)用就會(huì)卡死,所以本文介紹了Python應(yīng)用開(kāi)發(fā)頻繁假死的問(wèn)題分析及解決,需要的朋友可以參考下
    2024-08-08
  • 如何基于Python代碼實(shí)現(xiàn)高精度免費(fèi)OCR工具

    如何基于Python代碼實(shí)現(xiàn)高精度免費(fèi)OCR工具

    這篇文章主要介紹了如何基于Python代碼實(shí)現(xiàn)高精度免費(fèi)OCR工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python3寫(xiě)爬取B站視頻彈幕功能

    python3寫(xiě)爬取B站視頻彈幕功能

    本篇文章給大家講解一下如何用python3寫(xiě)出爬取B站視頻彈幕的功能,有興趣的讀者們參考學(xué)習(xí)下吧。
    2017-12-12
  • python連接oracle數(shù)據(jù)庫(kù)操作實(shí)例及遇到的異常

    python連接oracle數(shù)據(jù)庫(kù)操作實(shí)例及遇到的異常

    這篇文章主要給大家介紹了關(guān)于python連接oracle數(shù)據(jù)庫(kù)操作實(shí)例及遇到的一些異常,Oracle是著名且廣泛使用的數(shù)據(jù)庫(kù)之一,而python的數(shù)據(jù)處理功能可以很好地利用這種連接性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Python?pygame項(xiàng)目實(shí)戰(zhàn)監(jiān)聽(tīng)退出事件

    Python?pygame項(xiàng)目實(shí)戰(zhàn)監(jiān)聽(tīng)退出事件

    這篇文章主要介紹了Python?pygame項(xiàng)目實(shí)戰(zhàn)監(jiān)聽(tīng)退出事件,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08

最新評(píng)論

镇雄县| 平定县| 瓮安县| 北宁市| 镇平县| 雅江县| 拜城县| 汾阳市| 昌图县| 乌兰察布市| 广汉市| 泌阳县| 长汀县| 龙岩市| 新泰市| 靖江市| 辛集市| 交城县| 甘肃省| 库车县| 阆中市| 巴东县| 密山市| 崇信县| 威远县| 太仓市| 宣威市| 陆川县| 林口县| 清苑县| 鸡泽县| 乐山市| 左云县| 武汉市| 伊通| 滨州市| 游戏| 雷州市| 岫岩| 册亨县| 全椒县|