python資料結構

2021-04-12 20:53:38 字數 3431 閱讀 5536

資料結構是一種結構,它們用以把一些資料儲存在一起。在python中有三種內建的資料結構:列表(list)、元組(tuple)、字典(dictionary)。

列表由一對方括號括起來,其中的專案之間以逗號分隔。你可以在列表中增加、刪除、查尋專案。

示例如下:

$ python using_list.py

這兒有 4 種水果.

它們是: 蘋果 桔子 芒果 香蕉

再加一種水果西瓜.

列出現在的水果 蘋果 桔子 芒果 香蕉 西瓜 none

給它們排個序

列出排序後的水果 桔子 芒果 蘋果 西瓜 香蕉 none

排在列表中第一的水果是 桔子

買掉這第乙個水果 桔子

列出現在的水果 芒果 蘋果 西瓜 香蕉 none

說明:1、shoplist = ['蘋果', '桔子', '芒果', '香蕉']定義了乙個由商品名稱構成的乙個名為shoplist的列表。列表中的元素可以是任何物件。在python中一切都是物件。

2、print語句中的逗號的作用是禁止自動換行。

4、shoplist.sort()為列表中的專案排序。

5、shoplist[0]引用列表中的第乙個元素。列表中元素的索引值從左到右由0開始。

6、del shoplist[0]刪除列表中的第乙個元素。del是列表的刪除方法。

元組由一對圓括號括起來,其中的專案之間以逗號分隔,元組中的元素可以是任何物件。元組是不可變的,你不要試圖改變其中的元素。

示例如下:

例1:

#!/usr/bin/python

# filename: using_tuple.py

zoo = ('wolf', 'elephant', 'penguin')#建立乙個名為zoo的元組

print 'zoo 中的元素的數量是:', len(zoo)

#len是元組的方法,用以得到其中的元素個數

new_zoo = ('monkey', 'dolphin', zoo)

print ' new_zoo 中的元素的數量是:', len(new_zoo)

print 'new_zoo 中的動物有', new_zoo

print '來自zoo中的動物有', new_zoo[2]#引用第三個元素zoo,也是乙個元組

print 'zoo中最後乙個動物是', new_zoo[2][2]#引用元組zoo的第三個元素

執行輸出如下:

$ python using_tuple.py

zoo 中的元素的數量是: 3

new_zoo 中的元素的數量是:3

new_zoo 中的動物有 ('monkey', 'dolphin', ('wolf', 'elephant', 'penguin'))

來自zoo中的動物有('wolf', 'elephant', 'penguin')

zoo中最後乙個動物是 penguin

例2:

#!/usr/bin/python

# filename: print_tuple.py

age = 22

name = 'pythontik'

print '%s is %d years old' % (name, age)

#格式化列印,我們經常這樣使用元組

#name對應%s(字串),age對應%d(整數);必須一一對應

print 'why is %s playing with that python?' % name

執行輸出如下:

$ python print_tuple.py

pythontik is 22 years old

why is pythontik playing with that python?

字典是由花括號括起來的鍵值對。鍵值對是由 名字:值 構成,鍵值對之間由逗號分隔;名字是不可變且唯一的,名字和值是一對一的關係,我們可以通過名字來訪問它的值。

示例如下:

#!/usr/bin/python

# filename: using_dict.py

#下面建造乙個字典pythontik

pythontik =

print "zhao's address is %s" % pythontik['zhao'] #在字典pythontik中新增乙個鍵值對'zhou':'[email protected]' pythontik['zhou'] = '[email protected]' #用del方法刪除乙個鍵值對'shun':'[email protected]' del pythontik['shun'] print '/nthere are %d contacts in the address-book/n' % len(pythontik) for name, address in pythontik.items(): print 'contact %s at %s' % (name, address) if 'zhou' in pythontik: # 或 pythontik.has_key('zhou') print "/nzhou's address is %s" % pythontik['zhou']

執行輸出如下:

$ python using_dict.py

zhao's address is [email protected]

there are 4 contacts in the address-book

contact zhao at [email protected]

contact qian at [email protected]

contact zhou at [email protected]

contact li at [email protected]

zhou 's address is [email protected]

列表、元組和字串都是序列,序列有兩個主要的特點:索引操作和切片操作。我們可以通過索引操作直接訪問序列中的某一值;通過切片操作來檢索序列中的某一部份。

示例如下:當我們建立了乙個物件並把它賦給(=)乙個變數後,這個變數就指向了這個物件,也就是說它指向了儲存這個物件的記憶體區域。但如果我們用切片的方法來複製給變數的話,那它們之間是不會互相影響的,各有各的記憶體區域。

示例如下:

$ python reference.py

****** assignment

shoplist is ['mango', 'carrot', 'banana']

mylist is ['mango', 'carrot', 'banana']

copy by ****** a full slice

shoplist is ['mango', 'carrot', 'banana']

mylist is ['carrot', 'banana']

本系列的文章**是http://www.pythontik.com/html,如果有問題可以與那裡的站長直接交流。

python 資料結構

刪除元素 remove,pop,del set是乙個無序的,不重複的元素集合 set中每個元素都是可雜湊的,但是set不是可雜湊的。相對應的frozenset,可hash,可以作為keys存在於dict中 支援 x in set,len set for x in set,不支援slice等序列操作 ...

python 資料結構

變數是只不過保留的記憶體位置用來儲存值。這意味著,當建立乙個變數,那麼它在記憶體中保留一些空間a abc 1.在記憶體中建立了乙個 abc 的字串 2.在記憶體中建立了乙個名為a的變數,並把它指向 abc a abc b a a xyz a abc 直譯器建立了字串 abc 和變數a,並把a指向 a...

Python資料結構

a列表 a 安徽 浙江 福建 相同資料型別,並且通過0,1,2,3索引可以引用值.函式 print len insert 插入 extend 複製 合併 del a 刪除 reverse 遍歷 a a b c for i in range len a print a i for index valu...