欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、列表(List)

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

# 定義一個 list 對象 class_list:
class_list = ['Michael', 'Bob', 'Tracy']
# 獲得一個 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 中刪除一個項目
del class_list[0]
# 對 class_list 進行排序
class_list.sort()
# 遍歷整個class_list中的項目
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)于上面的代碼有幾點要注意的是:

可以往 class_list 中加入任何類型的對象,也就是說,并不要求一個 list 中的項目具有相同類型。你甚至可以往 class_list 中插入一個list。
排序函數(shù)作用于本身, 而不是返回一個副本,這與字符串類型是不同的,因為字符串不可修改。
print 函數(shù)的end關(guān)鍵字參數(shù)用來指定輸入完成之后的輸出,默認是換行符,上面的代碼用空格符替代換行符。

二、元組(Tuple)

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

tuple中的項同樣應(yīng)該用逗號分開,并用圓括號將這些項目括起來以表是是一個tuple。這個圓括號是可選的,也就是說可以用以下兩種方式定義一個tuple:

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

三、字典(Dictionary)

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

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

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

序列的下標是從0開始的,上面的例子中只使用了下標為正數(shù)的情況,其實下標還可以為負數(shù),如-1,-2,-3…。負數(shù)下標表示的意義為反方向的位置,如class_list[-1]返回的是class_list的倒數(shù)第一個項目。

序列不但支持負數(shù)下標還支持雙下標,這對雙下標表示一個區(qū)間。如class_list[0:3]返回的是一個class_list中從下標為1到下標為3之前的子序列副本。注意這個區(qū)間是一對半閉半開的區(qū)間。這種操作被稱作切片操作(slicing operation)。如果切片操作的第二個下標超出了序列的范圍,那么切片操作會到序列的末尾終止。切片操作中的兩個下標都有默認值,第一個的默認值為0,第二個的大小為序列的長度。

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

五、集合(Set)

集合是無序簡單對象的聚集。當你只關(guān)注一個對象是否存在于聚集中,而不管它存在的順序或在出現(xiàn)的次數(shù)時,則適宜用集合?;竟δ埽号袛嗍欠袷羌系某蓡T、一個集合是不是另一個集合的子集、獲取兩個集合的交集等等。實例:

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

輸出的結(jié)果:

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

相關(guān)文章

  • Python中sys模塊常用方法與變量實例探究

    Python中sys模塊常用方法與變量實例探究

    sys?模塊是 Python 標準庫中的一個核心模塊,提供了與解釋器進行交互的功能,了解?sys?模塊的方法和變量對于更有效地管理和調(diào)試 Python 程序至關(guān)重要,本文將深入探討?sys?模塊的常用方法和變量,通過詳細的示例代碼,幫助大家更全面地了解并靈活運用這一關(guān)鍵模塊
    2024-01-01
  • Python文本相似性計算之編輯距離詳解

    Python文本相似性計算之編輯距離詳解

    大家在做爬蟲的時候,很容易保持一些相似的數(shù)據(jù),這些相似的數(shù)據(jù)由于不完全一致,如果要通過人工一一的審核,將耗費大量的時間,大家對編輯距離應(yīng)該有所了解,這篇文章我們先來了解下什么是編輯距離,然后在學(xué)習(xí)Python如何計算編輯距離,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • Python Flask 轉(zhuǎn)換器的使用詳解

    Python Flask 轉(zhuǎn)換器的使用詳解

    這篇文章主要介紹了Python_Flask 轉(zhuǎn)換器的使用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • python計算N天之后日期的方法

    python計算N天之后日期的方法

    這篇文章主要介紹了python計算N天之后日期的方法,涉及Python操作日期的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • Pandas數(shù)據(jù)分析常用函數(shù)的使用

    Pandas數(shù)據(jù)分析常用函數(shù)的使用

    本文主要介紹了Pandas數(shù)據(jù)分析常用函數(shù)的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 利用python如何實現(xiàn)貓捉老鼠小游戲

    利用python如何實現(xiàn)貓捉老鼠小游戲

    這篇文章主要給大家介紹了關(guān)于利用python如何實現(xiàn)貓捉老鼠小游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • PyQt QListWidget修改列表項item的行高方法

    PyQt QListWidget修改列表項item的行高方法

    今天小編就為大家分享一篇PyQt QListWidget修改列表項item的行高方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python中return如何寫

    python中return如何寫

    在本篇文章里小編給大家分享的是一篇關(guān)于python中return如何寫的知識點總結(jié),需要的朋友們參考學(xué)習(xí)下。
    2020-06-06
  • python學(xué)習(xí)筆記--將python源文件打包成exe文件(pyinstaller)

    python學(xué)習(xí)筆記--將python源文件打包成exe文件(pyinstaller)

    這篇文章主要介紹了通過將pyinstallerpython源文件打包成exe文件的方法,需要的朋友可以參考下
    2018-05-05
  • 解決Python運行文件出現(xiàn)out of memory框的問題

    解決Python運行文件出現(xiàn)out of memory框的問題

    今天小編就為大家分享一篇解決Python運行文件出現(xiàn)out of memory框的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論