1. 序列:
序列中的每個元素都有自己的編號。Python中有6種內建的序列。其中列表和元組是最常
見的類型。其他包括字符串、Unicode字符串、buffer對象和xrange對象。
區別:列表是可變的,字符串和元組不可變。
1.1 列表:
1.1.1 列表常用操作:
"-".join(k) //使用“”中的字符將列表中的元素連接起來,可以爲空字符串
i.append("a") //在列表末尾插入字符串“a”
i.append(j) //將列表j作爲一個元素插入到列表i末尾
i.extend(j) //合併列表i和j
i.insert(0,"a") //在列表第0位插入字符串“a”,第0位及後面的元素向後移動一位
if char in i //in爲判斷char字符串是否在列表i中,not in判斷是否不存在列表中
i.index("a") //查找列表中第一個字符串“a”所在位置
i.count("a") //查找列表中字符串“a”出現的次數
del i[0] //刪除列表中第0位元素
i.pop() //刪除並返回列表的最後一個元素
i.remove("a") //刪除列表中的元素“a”
i.reverse() //逆序排列列表
i.sort() //由小到大排序列表,降序排序可在括號中加參數reverse=True
cmp(list1, list2) //比較兩個列表的元素
len(list) //列表元素個數
max(list) //返回列表元素最大值
min(list) //返回列表元素最小值
list(seq) //將元組轉換爲列表
1.1.2 列表的優點:
佔用空間小,浪費內存很少。(以時間換空間)
1.1.3 列表的缺點:
查找和插入的時間隨着元素的增加而增加。
1.2 元組:
1.2.1 元組常用操作:
tuple=(a,"a",1) //元祖不可以修改,只支持查看,定義好後不能進行修改,但可
以修改元祖內的列表元素的內容,元組中只包含一個元素時,需要在元素後面添加逗
號,否則括號會被當作運算符使用。
len(tup1) //返回元組中元素的個數
tup1[1:5] //返回元組tup1下標爲1-4的元素(包頭不包尾)
tup3 = tup1 + tup2 //將tup1和tup2兩個元組連接起來生成一個新的元組
tup2 = tup1 * 5 //將tup1中的元素複製5遍生成一個新的元組
3 in tup1 //判斷3是否包含於元組tup1中,返回布爾類型
for i in tup1 //返回tup1中的每個元素(元組可迭代)
max(tup1) //返回元組中的最大元素
min(tup1) //返回元組中的最小元素
tuple(seq) //將列表轉換爲元組
1.2.2 元組的優點:
佔用內存小,處理速度快。
1.2.3 元組的應用:
交換賦值:
a = 1
b = 2
b, a = a, b
print(a,b)
原理:將a, b封裝爲一個元組,b, a = (1, 2),b = (1, 2)[0],a = (1, 2)[1]
1.3 字符串:
1.3.1 字符串常用操作:
i.find("abc") //查找i中是否存在“abc”,若存在,返回第一個“abc”在列表中的位
置,若不存在,則返回-1
i.rfind("abc") //從右邊開始查找
i.index("abc") //用法同find,當不存在時報錯
i.count("abc") //返回列表中“abc”的個數
i.replace("a","z",2) //替換前兩個a爲z
i.split("-",2) //字符串切割,“”內爲分隔標誌字符,2爲將前兩部分單獨分割,分
隔後不保留分割標識字符,若“”內不指定分割標識字符,則將所有的符號及空格看作標識字符
i.partition("-") //字符串切割,保留分割標識符
i.capitalize() //字符串首字母大寫
i.title() //字符串單詞首字母大寫
i.startswith("a") //判斷字符串是否以“”內字符串開頭,返回布爾類型
i.endswith("a") //判斷字符串是否以“”內字符串結尾,返回布爾類型
i.upper() //將字符串所有的小寫變成大寫
i.lower() //將字符串所有的大寫變成小寫
i.ljust(100) //在100像素寬度內左對齊字符串
i.rjust(100) //在100像素寬度內右對齊字符串
i.center(100) //在100像素寬度內居中對齊字符串
i.strip() //刪除左右兩端的空白字符,若要指定左右,前面加上l或r
i.isalpha() //判斷字符串是否只由字母組成,返回布爾類型
i.isdigit() //判斷字符串是否只由數字組成
i.isalnum() //判斷字符串是否由字母和數字組成
i.isspace() //判斷字符串是否只由空格組成
2. 映射:
映射中的每個元素都有一個名字,這個名字專業的名稱叫鍵。字典(也叫散列表)是Python中唯一內建的映射類型。字典的鍵可以是數字、字符串或者是元組,鍵必須唯一。在Python中,數字、字符串和元組都被設計成不可變類型,而常見的列表以及集合(set)都是可變的,所以列表和集合不能作爲字典的鍵。鍵可以爲任何不可變類型,這正是Python中的字典最強大的地方。
2.1 字典:
2.1.1 字典常用操作:
dict={key1:value1,key2:value2} //創建字典(字典中的鍵和值成對出現,鍵不
可以重複,值可以重複)
dict.get("age",0) //使用get方法返回鍵對應的值,0表示當鍵不存在時返
回0,直接訪問不存在的鍵時報錯
dict["age"] //返回age鍵對應的值
dict["age"]=1 //修改age鍵對應的值爲1,若不存在age鍵,則添加age
鍵,且值爲1
del dict["age"] //刪除age鍵和其對應的值
dict.keys() //返回dict中的鍵
dict.values() //返回dict中的值
dict.items() //返回dict中的鍵和值
for name,age in dict.items() //返回dict中的鍵值對
2.1.2 字典的優點:
查找和插入的速度極快,不會隨着key的增加而變慢。
2.1.3 字典的缺點:
需要佔用大量的內存,內存浪費多。
3. 集合:
集合(set)是一個無序的不重複元素序列。可以使用大括號 { } 或者 set() 函數創建集合,
創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典。
3.1 集合:
3.1.1 集合常用操作:
s = set(('12', '15', '98')) 創建集合{'98', '15', '12'}
s = set('121598') 創建集合{'8', '5', '9', '2', '1'}
s = {'12', '15', '98'} 創建集合{'98', '12', '15'}
'12' in s 判斷'12'是否在集合s中
s1 - s2 包含於集合s1而不包含於集合s2的元素,返回值爲集合
s1 | s2 集合s1和集合s2中的所有元素,返回值爲集合
s1 ^ s2 不同時包含於集合s1和集合s2的元素,返回值爲集合
s1 & s2 同時包含於集合s1和集合s2的元素,返回值爲集合
{x for x in '12589485' if x not in '159'} 使用推導式創建集合
s.add(x) 將元素x添加到集合s中,add參數只能爲字符串、整型
s.update(x) 將元素x添加到集合s中,update參數可以爲列表、元組、字典。可一次傳
入多個參數,用逗號隔開。當傳入參數爲字典時,將字典的鍵作爲參數
s.remove( x ) 將元素x從集合s中刪除,當元素x不存在時報錯
s.discard( x ) 將元素x從集合s中刪除,當元素x不存在時不報錯
s.pop() 隨機刪除集合s中的一個元素,在交互模式,pop 是刪除集合的第一個元素
(排序後的集合的第一個元素)。
len(s) 計算集合s中元素的個數
s.clear() 清空集合
4. 棧、隊列:
棧:先進後出
隊列:先進後出
4.1 棧的實現:
4.1.1 使用列表實現:
創建棧:stack = []
入棧:stack.append()
出棧:stack.pop()
5. 鏈表:
鏈表是一組
結點(也可以叫節點或元素),每一個結點有兩個域,左邊部份叫值域,用於存放用戶數據;右邊叫指針域,一般是存儲着到下一個元素的指針
head結點,head是一個特殊的結節,head結點永遠指向第一個結點
tail結點,tail結點也是一個特殊的結點,tail結點永遠指向最後一個節點
None,鏈表中最後一個結點指針域的指針指向None值