Python基本資料結構:清單,元組及字典
一、清單
一組有序項目的集合。可變的資料類型【可進行增删改查】
清單是以方括号“[]”包圍的資料集合,不同成員以“,”分隔。
清單中可以包含任何資料類型,也可包含另一個清單
清單可通過序号通路其中成員
常用清單操作:
list.append()追加成員,成員資料
list.pop()删除成員,删除第i個成員
list.count(x)計算清單中參數x出現的次數
list.remove()删除清單中的成員,直接删除成員i
list.extend(L)向清單中追加另一個清單L
list.reverse()将清單中成員的順序颠倒
list.index(x)獲得參數x在清單中的位置
list.sort()将清單中的成員排序
list.insert()向清單中插入資料insert(a,b)向清單中插入資料
可通過
>>>help(list) 檢視方法詳情
[python] view plain copy print ?
- print("-------list operations------")
- #清單操作
- l = [1,2,3,4,5]
- l2 = [7,8,9]
- print(l)
- #獲得清單長度
- length = len(l)
- print(length)
- #追加一個元素,在清單最後一位
- l.append(6)
- print(l)
- #向清單中追加另一個清單
- l.extend(l2)
- print(l)
- #插入一個元素,在位置a
- l.insert(0,0)
- print(l)
- #将清單順序颠倒
- l.reverse()
- print(l)
- #排序,從小到大
- l.sort()
- print(l)
- #統計某個元素出現的次數
- c = l.count(0)
- print(c)
- #查找某個參數在清單中的位置,未命中則抛異常
- i = l.index(1)
- print(i)
- #删除某個位置的成員
- l.pop(0)
- print(l)
- l.append(1)
- #直接删除某個值的成員,若有多個,删除第一個
- l.remove(1)
- print(l)
結果:

清單補充:2011-4-17
[c-sharp] view plain copy print ?
- #清單操作補充--切片操作
- example = [0,1,2,3,4,5,6,7,8,9]
- #列印某一區間 左閉右開
- print(example[4:8])
- #想包含最後一個
- print(example[4:])
- #包含首個
- print(example[:8])
- #所有的
- print(example[:])
- #第三個參數為步長
- print(example[1:8:2])
- #倒序輸出
- print(example[::-1])
- #清單合并
- a = [1,2,3]
- b = [4,5,6]
- print(a+b)
- #替換
- ex = [1,2,3,4,5,6]
- ex[4:]=[9,8,7]
- print(ex)#将56換為987
- #插入
- ex[1:1] = [0,0,0]
- print(ex)
- #删除
- del ex[0:2]
- print(ex)
- #或者
- ex[6:]=[]
- print(ex)
- #比較
- one = [1,2,3]
- two = [1,2,3]
- print(one == two)#true
- print(one is two)#false
- #清單操作補充——字元串也是清單
- str = "abcdefg"
- print(str[0])
- #将一個字元串轉為字元數組
- print(list(str))
- #字元串
- s = "abcdefg"
- #判斷是否包含
- print('a' in s)
- #函數和子產品
- import math
- #将一個變量指向一個函數
- se = math.sqrt
- print(se(81))
結果:
二、元組
不可變序列
元組是以圓括号“()”包圍的資料集合,不同成員以“,”分隔
與清單不同:元組中資料一旦确立就不能改變
通過下标進行通路
聲明:
L=(1,2,3)
含0個元素的元組: L = ()
含1個元素的元組:L=(1,) 注意有逗号
[python] view plain copy print ?
- #元組操作
- #聲明
- o =('a','b','c',('d1','d2'))
- o1 = ()
- o2 = (1,)
- #通路
- print(o[0])
- print(o[3][0])
- #用于列印語句
- age = 22
- name = 'tom'
- print("%s is %d years old"%(name,age))
三、字典
鍵值對的集合(map)
字典是以大括号“{}”包圍的資料集合
與清單差別:字典是無序的,在字典中通過鍵來通路成員。
字典是可變的,可以包含任何其他類型
聲明:
M={k1:v1,k2:v2}
通路 M[k1]将得到v1
常用字典操作:
dic.clear()清空字典
dic.keys()獲得鍵的清單
dic.values()獲得值的清單
dic.copy()複制字典
dic.pop(k)删除鍵k
dic.get(k)獲得鍵k的值
dic.update()更新成員,若成員不存在,相當于加入
dic.items()獲得由鍵和值組成的清單
dic.popitem
可以通過
>>>help(dict) 檢視詳情
[python] view plain copy print ?
- #字典操作
- m = {'a':1,'b':2,'c':3}
- print(m)
- #讀取某一個_通過key
- print(m['a'])
- #讀取某一個,通過get方法
- print(m.get('b'))
- #複制字典
- m2 = m.copy()
- print(m2)
- #擷取所有鍵的清單
- print( m.keys() )
- #擷取所有值的清單
- print( m.values() )
- #擷取所有鍵值對元組組成的清單
- print( m.items() )
- #更新成員,當對應鍵值不存在時,相當于加入
- m.update({'d':4})
- print(m)
- #删除某個成員
- m.pop('a')
- print(m)
四、序列的索引和切片
清單、元組和字元串都是序列
序列的兩個主要特點是索引操作符和切片操作符。
索引操作符讓我們可以從序列中抓取一個特定項目。即下标操作,用方括号和數字抓取某個位置的項目,L[0]抓取第一個元素,L[-1]抓取最後一個元素
切片操作符讓我們能夠擷取序列的一個切片,即一部分序列。方括号加一對可選數字,切出某個子片L[1:3] 傳回1-2的子片,L[2:]從2開始到最後,L[:]整個
參考:http://blog.csdn.net/wklken/article/details/6312888