參考http://www.runoob.com/python3/python3-data-structure.htmlhtml
列表是可修改的。python
列表方法讓列表能夠方便的做爲一個堆棧來使用,堆棧做爲特定的數據結構,最早進入的元素最後一個被釋放(後進先出)。數據結構
其中用append()方法能夠把一個元素添加的堆棧頂;能夠用不指定索引的pop()方法把一個元素從堆棧頂釋放出來,返回最後一個元素。app
列表頁能夠用做隊列,只是隊列裏是第一加入的元素,第一個取出來;拿列表作隊列效率不高。在列表的最後添加或彈出元素速度快,然而在列表裏插入或頭部彈出速度不快(由於全部其餘的元素都得一個一個移動)例如popleft()方法。函數
列表推導式提供了從序列建立列表的簡單途徑。應用程序將一些操做應用於某個序列的每一個元素,最後用得到的結果做爲生成新列表的元素,或者根據肯定的斷定條件建立子序列。測試
vec = [2,4,6]
vec1 = [3*x for x in vec]
#每一個列表推導式在for以後跟一個表達式,若是但願推導出一個元組,必須用括號
print(vec1)
vec2 = [[x,x**2] for x in vec]
print(vec2)
vec3 = [3*x for x in vec if x >3] #if語句過濾
print(vec3)
vec4 = [3*x for x in vec if x <2]
print(vec4)
vec5 = [1,2,3]
vec6 = [x*y for x in vec for y in vec5 ]
print(vec6)
vec7 = [x+y for x in vec for y in vec5]
print(vec7)
vec8 = [vec[i]*vec5[i]for i in range(len(vec))]
print(vec8)
Python的列表還能夠嵌套。htm
#3x4矩陣列表
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
]
cr = [[row[i] for row in matrix] for i in range(4)]
#3x4矩陣列表轉換爲4x3列表
print(cr)
#方法二
transposed = []
for i in range(4):
transposed.append([row[i] for row in matrix])
print(transposed)
使用 del 語句能夠從一個列表中依索引而不是值來刪除一個元素。能夠用del語句從列表中刪除一個切割,或清空整個列表。索引
a = [-1,1,2,3,345,345,111.5]
del a[0]
print(a)
del a[2:4]
print(a)
del a[:]
print(a)
del a #也能夠刪除實體變量
print(a)
t = 12345,54321,'hello!' #元組由若干逗號分隔的值組成
t[0]
print(t[0])
print(t)
u = t,(1,2,3,4,5) #元組在輸出時老是有括號的,以便於正確表達嵌套結構。
print(u)
集合是一個無序不重複元素的集。基本功能包括關係測試和消除重複元素。隊列
能夠用大括號({})建立集合。注意:若是要建立一個空集合,你必須用 set() 而不是 {} ;後者建立一個空的字典,下一節咱們會介紹這個數據結構。字符串
basket = {'apple','orange','apple','pear','orange','banana'}
print(basket) #刪除重複的
x1 = 'orange' in basket #檢測成員是否存在集合中
print(x1)
x2 = 'crabgrass' in basket
print(x2)
x3 = set('abcdacbabc')
x4 = set('alacazz')
print(x3)
print(x3-x4) #在a中有,b中沒有
print(x3|x4) #在a或b有
print(x3&x4) #在a和b中同時有
print(x3^x4) #在a或b中的字母,可是不一樣時在a和b
x5 = {x for x in 'abracadabra' if x not in 'abc'} #集合也支持推導式
print(x5)
序列是以連續的整數爲索引,與此不一樣的是,字典以關鍵字爲索引,關鍵字能夠是任意不可變類型,一般是字符串或數值。
在同一個字典中,關鍵字必須是互不相同。
建立空的字典:{}
d = {'a':5601,'b':4000}d['c'] = 4127print(d)print(d['a'])del d['b']print(d)d['d'] = 4127print(d)print(list(d.keys()))print(sorted(d.keys()))print('d' in d)print('e' in d)print('d' not in d)#構造函數dict()直接從鍵值對元組列表中構建字典d1 = dict([('a',5601),('b',4000),('c',4127)])print(d1)#字典推導能夠用來建立任意鍵和值的表達式詞典d2 = {x: x**2 for x in (2,4,6)}print(d2)#若是關鍵字只是簡單的字符串,使用關鍵字參數指定鍵值對d3 = dict(a= 5601,b= 4000,c= 4127)print(d3)