元組 1.與字元串相同的是元組是一些元素的不可變有序序列。與字元串的區別是元組中的元素不一定是字元,其中的按個元素可以是任意類型,且他們彼此之間的類型也可以不同。 2.元組可以進行的操作: 重覆操作、連接、索引、切片... 3*('a',2) = ('a',2,'a',2,'a',2) ('a',2 ...
元組
1.與字元串相同的是元組是一些元素的不可變有序序列。與字元串的區別是元組中的元素不一定是字元,其中的按個元素可以是任意類型,且他們彼此之間的類型也可以不同。
2.元組可以進行的操作:
重覆操作、連接、索引、切片...
3*('a',2) = ('a',2,'a',2,'a',2)
('a',2) + ('b',3)
a = (1,2,3) a[0] = (1)
a = (1,2,3) a[0:2] = (1,2)
字元串
s.count(s1):計算字元串s1在s中出現的次數。
s.find(s1):返回子字元串s1在s中第一次出現時的索引值,如果s1不在s中,則返回-1。
s.rfind(s1):功能與find相同,只是從s的末尾開始反向搜索(rfind中的r表示反向)。
s.index(s1):功能與find相同,只是如果s1不在s中,則拋出一個異常(第7章)。
s.index(s1):功能與index相同,只是從s的末尾開始。
s.lower():將s中的所有大寫字母轉換為小寫。
s.replace(old, new):將s中出現過的所有字元串old替換為字元串new。
s.rstrip():去掉s末尾的空白字元。
s.split(d):使用d作為分隔符拆分字元串s,返回s的一個子字元串列表。
列表
1.與元組類似,列表也是值的有序序列,每個值都可以由索引進行標識。區別列表使用的是中括弧,而元組使用的是小括弧。
註意:空列表寫作[],單元素列表不需要再比括弧前面加上那個(特別容易忘掉的)逗號
2.列表是可變的,而元組和字元串是不可變的。
3.列表操作:
L.append(e):將對象e追加到L的末尾
L.count(e):返回e在L中出現的次數
L.insert(i,e):將對象e插入L中索引值為i的位置
L.extend(L1):將L1中的項目追加到L末尾
L.remove(e):從L中刪除第一個出現的e
L.index(e):返回e第一次出現在L中時索引值。若e不在L中,拋出一個異常
L.pop(i):刪除並返回L中索引值為i的項目。若L為空,則跑出異常;i被省略,預設為-1,刪除並返回L中最後一個元素
L.sort(i):升序排列L中的元素
L.reverse():翻轉L中元素的順序
列表推導式
1.列表推導式提供了一種簡介的方式,將某種操作應用到序列中的一個值上。他會創建一個新列表,其中的每個元素都是一個序列中的值應用給定操作後的結果。
mixed = [1, 2, 'a', 3, 4.0]
print([x**2 for x in mixed if type(x) == int])
高階函數
1.使用函數作為實參可以實現一種名為高階編程的編碼方式,這種方式與列表結合使用非常方便。
2.map高階函數:
a.map函數被設計為與for迴圈結合使用。在map函數的最簡形式中,第一個參數是個一元函數(即只有一個參數的函數),第二個參數是有序的值集合,集合中可以一元函數的參數.
b.map函數更一般的的形式是,第一個參數可以是具有N個參數的函數,在這種情況下,它後邊必須跟隨著N個有序集合(這些集合的長度都一樣)
L1 = [1, 28, 36]
L2 = [2, 57, 9]
for i in map(min, L1, L2):
print(i)
3.匿名函數
匿名函數就是沒有綁定名稱的函數,這時要使用保留字lambda。一般表達式的形式為:
lambda <sequence of variable names>: <expression>
lambda表達式lambda x,y:x*y會返回一個函數,這個函數的返回值為兩個參數的乘積。lambda表達式經常用作高階函數的實參。
L = []
for i in map(lambda x,y:x*y,[1,2,3,4],[3,2,1,0]):
L.append(i)
print(L)
輸出:[1,4,3,1]
序列類型比對
類型 元素類型 字面量示例 是否可變
str 字元型 '','a','abc' 否
tuple 任意類型 (),(2,),('abc',4) 否
range 整型 range(10) 否
list 任意類型 [],[3],['abc',4] 是
字典
1.字典(dictionary)類型的對象與列表很相似,區別在於字典使用鍵對其中的值進行引用,可以將字典看做一個鍵/值對的集合。字典類型的字面量用大括弧表示,其中元素寫法是鍵加冒號再加上值。
monthNumbers = {'Jan':1, 'Feb':2, 'Mar':3, 'Apr':4, 'May':5,
1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr', 5:'May'}
2.dict中的項目是無序的,不能通過索引引用。
3.dict的操作:
len(d):返回d中項目的數量。
d.keys():返回d中所有鍵的視圖。
d.values():返回d中所有值的視圖。
k in d:如果k在d中,則返回True。
d[k]:返回d中鍵為k的項目。
d.get(k, v):如果k在d中,則返回d[k],否則返回v。
d[k] = v:在d中將值v與鍵k關聯。如果已經有一個與k關聯的值,則替換。
del d[k]:從d中刪除鍵k。
for k in d:遍歷d中的鍵。