容器類資料結構:
1,列表:
列表是處理一組有序項目的資料結構,即你可以在一個列表中儲存一個序列的項目。一旦你建立了一個列表,你可以添加、刪除或是搜尋列表中的項目。由於你可以增加或刪除項目,我們說列表是可變的資料類型,即這種類型是可以被改變的。
介紹幾個列表的方法
insert(i, x) ---- 在指定位置插入一項。第一自變數是要在哪一個元素前面插入,用下標表示例如,list.insert(0, x)在列表前面插入,list.insert(len(list), x)等價於list.append(x)。
append(x) ---- 等價於list.insert(len(a), x)
index(x) ---- 在列表中尋找值x然後返回第一個值為x的元素的下標。沒有找到時出錯。
remove(x) ---- 從列表中刪去第一個值為x的元素,找不到時出錯。
sort() ---- 對列表元素在原位排序。注意這個方法改變列表,而不是返回排序後的列表。
reverse() ---- 把列表元素反序。改變列表。
count(x) ---- 返回x在列表中出現的次數。
Python代碼 >>> list = ['a','c','g','e','t','b','f','d','g'] >>> list.insert(3,'d') >>> list ['a', 'c', 'g', 'd', 'e', 't', 'b', 'f', 'd', 'g'] >>> list.append('c') >>> list ['a', 'c', 'g', 'd', 'e', 't', 'b', 'f', 'd', 'g', 'c'] >>> list.index('c') 1 >>> list.remove('c') >>> list.index('c') 9 >>> list.count('d') 2 >>> list.sort() >>> list ['a', 'b', 'c', 'd', 'd', 'e', 'f', 'g', 'g', 't'] >>> new_list = ['a','c','g','d','b'] >>> new_list.reverse() >>> new_list ['b', 'd', 'g', 'c', 'a']
可以使用help(list)獲得列表對象的所有方法。
2,元組:
元組和列表十分類似,只不過元組和字串一樣是不可變的,即你不能修改元組。元組通常用在使語句或使用者定義的函數能夠安全地採用一組值的時候,即被使用的元組的值不會改變。
舉例:Python代碼 >>> zoo = ('wolf', 'elephant', 'penguin') >>> print len(zoo) 3 >>> new_zoo = ('monkey', 'dolphin', zoo) >>> print len(new_zoo) 3 >>> print new_zoo ('monkey', 'dolphin', ('wolf', 'elephant', 'penguin')) >>> print new_zoo[2] ('wolf', 'elephant', 'penguin') >>> print new_zoo[2][1] elephant
從代碼中可以看出列表和元組的區別。
3,字典:
字典是一系列未排序的“索引值:值”的集合,在同一字典內索引值是互不相同的。對字典的主要操作是以某個索引值儲存一個值,以及給定索引值後尋找對應的值。也可以用del刪除某個索引值:值對。如果用一個已有定義的索引值儲存某個值則原來的植被遺忘。用不存在的索引值去尋找會出錯。
字典不象序列,它不是用在一個範圍之內的數字下標來索引,而是用索引值 來索引,索引值可以是任何不可變類型。字串和數值總可以作索引值。如果元組只包含字串 、數值或元組,則元組也可以作索引值使用,因為元組是不可更改的。列表不能用作索引值,因為列表可以用其append()方法就地改變值。
字典對象的keys()方法返回字典中所有索引值組成的列表,次序是隨機的。需要排序時只要對返回的索引值列表使用sort()方法。為了檢查某個索引值是否在字典中,使用字典的has_key()方法。
字典使用舉例:
Python代碼 >>> employee_id = {'Sammy':1, 'david':2, 'shirley':3,'jack':4,'guido':5} >>> employee_id['shirley'] 3 >>> employee_id.has_key('fly') False >>> employee_id.keys() ['shirley', 'Sammy', 'guido', 'jack', 'david'] >>> employee_id {'shirley': 3, 'Sammy': 1, 'guido': 5, 'jack': 4, 'david': 2} >>> del employee_id['david'] >>> employee_id {'shirley': 3, 'Sammy': 1, 'guido': 5, 'jack': 4} >>> for name, id in employee_id.items(): .... print 'employee %s id is %d' % (name, id) .... employee shirley id is 3 employee Sammy id is 1 employee guido id is 5 employee jack id is 4 >>> if 'shirley' in employee_id or employee_id.has_key('shirley'): .... print employee_id.get('sh